第2章+線性表_2_鏈表.ppt_第1頁
第2章+線性表_2_鏈表.ppt_第2頁
第2章+線性表_2_鏈表.ppt_第3頁
第2章+線性表_2_鏈表.ppt_第4頁
第2章+線性表_2_鏈表.ppt_第5頁
已閱讀5頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、2.3 鏈表,一、鏈表結(jié)構(gòu),1.鏈表基本結(jié)構(gòu),結(jié)點:元素值、下一個元素的地址。,L=(a1,a2,an),2.鏈表的實現(xiàn),(1)靜態(tài)鏈表用數(shù)組,L=(A,B,C,D,E,F),3,2,0,5,-1,4,(2)動態(tài)鏈表用指針和動態(tài)變量實現(xiàn) 結(jié)點結(jié)構(gòu):,類型定義: typedef struct elementtype data; struct node *next; node; 變量定義:node *head,*L;,鏈表:,head-data,head-next,帶頭結(jié)點的單璉表:,注意:頭結(jié)點與首元素結(jié)點的區(qū)別。,二、單鏈表運算的實現(xiàn),1、初始化(建空表),void initial_list(

2、node * L-next = NULL; ,2、求表長,int list_length(node *L) int n=0; node *P=L-next; while (P!=NULL) n+; P=P-next; return n; ,3、按序號取元素,node *get_element(node *L, int i) node *P=L-next; j=1; while (j!=i ,4、查找,node *list_locate (node *L, elementtype x) node *P=L-next; while (P!=NULL ,5、插入,void list_insert (

3、node *L, int i, elementtype x) node *P=L; int k=0; node *S; while (k!=i-1 ,6、刪除,void list_delete (node *L, int i) node *u,*P=L; int k=0; while (k!=i-1 ,7、鏈表的構(gòu)造,(1)尾插法建表 void create_list_R (node * ,(2)頭插法建表 void create_list_H(node * ,單鏈表的應(yīng)用: 設(shè)計算法,判斷單鏈表L是否遞增,若遞增,則返回TRUE,否則返回FALSE。,例,分析: (1)鏈表為空,返回TRUE

4、; (2)只有一個元素,返回TRUE; (3)每個元素都小于其直接后繼,則返回TRUE;否則返回FALSE。,BOOL Judge (node *L) node *P=L-next; if (P=NULL) return TRUE; while (P-next!=NULL) if (P-datanext-data) P=P-next; else return FALSE; return TRUE; ,三、其他形式的鏈表,1、單循環(huán)鏈表,帶尾指針的單循環(huán)鏈表:,rear,2、雙鏈表,類型描述: typedef struct elementtype data; struct dnode *prior,*next; dnode;,a1,a2,a3,head,(1)插入,S-next=P-next;, S-prior=P;, P-next=S;, S-next-prior=S;,思考:4個步驟次序是不是唯一的?,(2)刪除,P-next-prior=P-prior

溫馨提示

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

評論

0/150

提交評論