鏈表這種數據結構,各對象按照線性順序進行排列,每一個對象包含一個關鍵字域以及兩個指針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();	}}
新聞熱點
疑難解答