模拟单链表

来源:互联网 发布:windows loader怎么用 编辑:程序博客网 时间:2024/06/06 22:20


package l1;//单链表public class Link {Node head;public Link() {head = new Node();head.next = null;}/** * * @Title: addNode * @Description: TODO(添加节点) * @param @param data  参数说明 * @return void    返回类型 * @throws */public void addNode(String data) {Node p = head;while (p.next != null) {p = p.next;}p.next = new Node(data);}/** * * @Title: delNode * @Description: TODO(删除节点) * @param @param data  参数说明 * @return void    返回类型 * @throws */public void delNode(String data) {Node p = head;if (p.next == null) {return;}while (p.next != null) {if (p.next.name.equals(data)) {p.next = p.next.next;break;} else {p = p.next;}}}/** * * @Title: display * @Description: TODO(遍历链表) * @param   参数说明 * @return void    返回类型 * @throws */public void display() {Node p = head;while (p.next != null) {System.out.println(p.next.name);p = p.next;}}/** * * @Title: findNode * @Description: TODO(查找节点) * @param @param data  参数说明 * @return void    返回类型 * @throws */public void findNode(String data) {Node p = head;while (p.next != null) {if (p.next.name.equals(data)) {System.out.println("data=" + p.next.name);break;} else {p = p.next;}}}/** * * @Title: insertNode * @Description: TODO(插入节点) * @param @param beforeData* @param @param data  参数说明 * @return void    返回类型 * @throws */public void insertNode(String beforeData, String data) {Node p = head;while (p.next != null) {if (p.next.name.equals(beforeData)) {Node temp = p.next;Node insertNode = new Node(data);insertNode.next = temp.next;temp.next = insertNode;break;} else {p = p.next;}}}/** * * @Title: size * @Description: TODO(获取节点大小) * @param   参数说明 * @return void    返回类型 * @throws */public void size() {Node p = head;int i = 0;while (p.next != null) {System.out.println(p.name);p = p.next;i++;}System.out.println("长度:" + i);}}

package l1;//节点类public class Node {String name;Node next;public Node() {}public Node(String name) {super();this.name = name;next = null;System.out.println("生成节点:" + name);}}


package l1;public class TestLink {public static void main(String[] args) {Link link = new Link();link.addNode("1");link.addNode("2");link.addNode("3");link.addNode("4");link.display();System.out.println("-------------");link.delNode("3");link.display();System.out.println("----------------");link.insertNode("2", "3");link.display();}}



0 0