1.链表
Node节点类
package com.evior.linklist; public class Node { //数据域 public long data; //指针域 public Node next; public Node(long value) { this.data=value; next=null; } /** * 显示的方法 */ public void display(){ System.out.println(data+" "); } }
LinkList链表类
package com.evior.linklist; public class MyLinkList { //头节点 private Node first; public MyLinkList(){ first=null; } //插入 public void insertFirst(long value){ Node node=new Node(value); node.next=first; first=node; } //删除 public Node deleteFirst(){ Node temp=first; first=temp.next; return temp; } //打印 public void display(){ Node current=first; while (current!=null){ current.display(); current=current.next; } } //查找的方法 public Node find(long value){ Node current=first; while (current.data!=value){ if (current==null){ return null; } current=current.next; } return current; } //删除方法,根据数据域来进行删除 public Node delete(long value){ Node current=first; Node previous=first; while (current.data!=value){ if (current==null){ return null; } previous=current; current=current.next; } //判断删除的是否为头结点 if (current!=first){ previous.next=current.next; current.next=null; }else { current=first; first=current.next; current.next=null; } return current; } }
2.测试
package com.evior.linklist; public class Test { public static void main(String[] args) { MyLinkList myLinkList=new MyLinkList(); myLinkList.insertFirst(1); myLinkList.insertFirst(2); myLinkList.insertFirst(3); myLinkList.display(); myLinkList.deleteFirst(); myLinkList.display(); myLinkList.insertFirst(4); myLinkList.display(); myLinkList.delete(2).display(); myLinkList.display(); } }
3、结果
package com.evior.linklist; public class Test { public static void main(String[] args) { MyLinkList myLinkList=new MyLinkList(); myLinkList.insertFirst(1); myLinkList.insertFirst(2); myLinkList.insertFirst(3); myLinkList.display(); myLinkList.deleteFirst(); myLinkList.display(); myLinkList.insertFirst(4); myLinkList.display(); myLinkList.delete(2).display(); myLinkList.display(); } }