數據結構(Java)-第2章線性表-鏈表_第1頁
數據結構(Java)-第2章線性表-鏈表_第2頁
數據結構(Java)-第2章線性表-鏈表_第3頁
數據結構(Java)-第2章線性表-鏈表_第4頁
數據結構(Java)-第2章線性表-鏈表_第5頁
已閱讀5頁,還剩15頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

//在不確定數據域數值的情況下,采用泛型定義publicclassNode<E>{Edata;//數據域Node<E>next;//指針域}datanext單個節點的表示方法//在不確定數據域數值的情況下,采用泛型定義publicclassLinkList<E>{ Node<E>head;Node<E>p;}datanext單個節點的表示方法datanextdatanextheadnull建立鏈表datanextheadNULLnewnode//說明head頭指針newnode新節點指針newnode.data數據域表示方式newnode.next指針域表示方式NULLnewnode無后繼節點headNULLPNULL初始狀態,無節點

head=NULL;P=NULL;publicLinkList(){head=null;p=null;}初始化datanextheadNULLpnewode建立鏈表publicvoidaddhead(Node<E>e){Node<E>newhead=newNode<E>();newhead.data=e.data;newhead.next=e.next;head=newhead;p=head;p.next=null;}遍歷輸出publicvoidprintlist(){ p=head; if(head==null) {System.out.println("這是一個空鏈表"); }while(p!=null)

{System.out.println(p.data); p=p.next; }}在鏈表后面插入節點datanextheadNULLnewnodedatanextp注意:添加節點后,鏈表的長度+1publicvoidaddlist(Node<E>e){Node<E>newnode=newNode<E>();newnode.data=e.data;newnode.next=e.next;p.next=newnode;p=p.next;p.next=null;}publicstaticvoidmain(String[]args){ScannerAA=newScanner(System.in);LinkList<Integer>obj1=newLinkList<Integer>();Node<Integer>tt=newNode<Integer>();System.out.print("請輸入第1數:");tt.data=AA.nextInt();obj1.addhead(tt);Node<Integer>tb=newNode<Integer>();intk;inti=2;do{System.out.print("請輸入第"+i+"數:");k=AA.nextInt();if(k==0)break;tb.data=k;obj1.addlist(tb);i++;}while(true);此段代碼:表示連續建立多個節點,知道輸入的數字為0,就不再建立新的節點obj1.printlist();System.out.print("請輸入第插入節點的值");tb.data=AA.nextInt();obj1.addnode(tb,2);obj1.printlist();System.out.print("請輸入首節點插入的值");tb.data=AA.nextInt();obj1.addH(tb);obj1.printlist();}單鏈表的插入(1)只定節點后插入新的節點圖示

s.next=p.next;p.next=s;(2)前插結點

(2)只定節點前插入新的節點圖示

s.next=p;q.next=s;單鏈表的刪除

q.next=p.next;p.next=null;單鏈表的按值查找操作 }

單鏈表操作的效率分析

(1)單鏈表是一種順序存取結構,不是隨機存取結構。要訪問任意一個結點ai(1≤i≤n),必須從頭指針head開始,沿著“鏈”的方向逐個查找,執行i-1次p=p.getNext()操作,平均進行n/2次。(2)單鏈表的插入和刪除操作,必須知道其直接前驅結點。(3)與順序表相比,單鏈表中結點的存儲空間是動態申請和釋放的,不需要預先分配。同時,對單鏈表執行插入和刪除操作時,只需要改變相關結點的“鏈”,不需要移動結點。因此,單鏈表在一定程度上可以提高運行效率和存儲空間的利用率。循環鏈表

head是單鏈表的頭指針,設rear是單鏈表的尾指針。將單鏈表中最后一個結點的指針域指回鏈表的頭結點,即rear.next=head,則整個單鏈表頭尾相連形成了一個環,就構成了循環單鏈表。

雙向鏈表

在單鏈表中,從任意一個結點出發都能通

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論