鏈表這種數據結構,各對象按照線性順序進行排列,每一個對象包含一個關鍵字域以及兩個指針next和PRev
下面是鏈表的示意圖:

下面再來看一下鏈表的刪除以及插入操作(刪除插入是鏈表擅長的,效率要比數組高很多)
2.插入

3.刪除

最后貼出實現鏈表的代碼:
package aa;public class MyList { Node head=null; class Node{ Node next=null; Object data; public Node(Object data){ this.data=data; } } //返回鏈表的長度 public int length(){ int length=0; Node pointer=head; while(pointer!=null){ length++; pointer=pointer.next; } return length; } //插入節點 public void insert(Object data){ Node nodew=new Node(data); if(head==null){ head=nodew; return; } Node pointer=head;//指向head while(pointer.next!=null){ pointer=pointer.next; } pointer.next=nodew; } //刪除節點 public boolean delete(int index){ if(index<1||index>length()){ return false; } if(index==1){//如果刪除的是頭節點,那么直接將頭節點指向下一個節點 head=head.next; return true; } int i=1; Node preNode=head; Node curNode=preNode.next; while(curNode!=null){ if(i==index){// preNode.next=curNode.next; return true; } preNode=curNode; curNode=curNode.next; i++; } return false; } //打印鏈表 public void printList(){ Node pointer=head; while(pointer!=null){ System.out.println(pointer.data); pointer=pointer.next; } } public static void main(String[] args){ MyList mylist=new MyList(); mylist.insert(1); mylist.insert(2); mylist.insert(3); mylist.insert("pg"); mylist.insert("sg"); mylist.insert("pf"); mylist.insert("pg"); mylist.insert("C"); System.out.println(mylist.length()); mylist.delete(2); mylist.printList(); }}
新聞熱點
疑難解答