雙向循環(huán)鏈表.ppt

雙向循環(huán)鏈表.ppt

ID:48590245

大?。?82.50 KB

頁數(shù):20頁

時(shí)間:2020-01-23

雙向循環(huán)鏈表.ppt_第1頁
雙向循環(huán)鏈表.ppt_第2頁
雙向循環(huán)鏈表.ppt_第3頁
雙向循環(huán)鏈表.ppt_第4頁
雙向循環(huán)鏈表.ppt_第5頁
資源描述:

《雙向循環(huán)鏈表.ppt》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、鏈表指針的方向?2.7雙向鏈表單鏈表?循環(huán)鏈表?單向的優(yōu)點(diǎn)?雙向的雙向鏈表1雙向鏈表雙向鏈表是指在前驅(qū)和后繼方向都能游歷(遍歷)的鏈表。在雙向鏈表中,每個(gè)結(jié)點(diǎn)有兩個(gè)指針域,一個(gè)指向直接后繼元素結(jié)點(diǎn),另一個(gè)指向直接前趨元素結(jié)點(diǎn)。2.7雙向鏈表2雙向鏈表結(jié)點(diǎn)結(jié)構(gòu)結(jié)點(diǎn)圖示存儲(chǔ)數(shù)據(jù)元素存儲(chǔ)后繼結(jié)點(diǎn)地址存儲(chǔ)前驅(qū)結(jié)點(diǎn)地址數(shù)據(jù)域data左指針left右指針right2.7雙向鏈表3雙向鏈表結(jié)構(gòu)…a1a2a3an…2.7雙向鏈表left_endright_end雙向鏈表中有指向頭結(jié)點(diǎn)和尾結(jié)點(diǎn)的兩個(gè)指針left_end和right_end。雙向鏈表中雙指針的設(shè)置,可以快速的找

2、到某結(jié)點(diǎn)的前趨和后繼結(jié)點(diǎn)。4雙向鏈表類定義—結(jié)點(diǎn)類templateclassdblist;//前視類定義templateclassdnode{friendclassdblist;//友類聲明private:Typedata;//數(shù)據(jù)dnode*left,*right;//左、右指針};2.7雙向鏈表5雙向鏈表類定義—雙向鏈表類templateclassdblist{private:intn;//表長(zhǎng)度dnode*left_end,*right_end;//表

3、頭,表尾指針public:dblist(){left_end=right_end=0;};//構(gòu)造函數(shù)~dblist();//析構(gòu)函數(shù)boolempty()const{returnn==0;}//測(cè)試表是否為空intsize()const{returnn;}//表的長(zhǎng)度boolretrieve(intk,Type&x)const;//查找表位置k處的元素intlocate(constType&x)const;//計(jì)算元素x在表中的位置dblist&insert(intk,constType&x);//插入結(jié)點(diǎn)dblist&erase(

4、intk,Type&x);//刪除結(jié)點(diǎn)voidprint_list(ostream&out)const;//輸出雙鏈表};2.7雙向鏈表6雙向循環(huán)鏈表雙向鏈表通常采用帶表頭結(jié)點(diǎn)的循環(huán)鏈表形式?!環(huán)eadera1a2an…非空表2.7雙向鏈表空表header7雙向循環(huán)鏈表類定義—雙向循環(huán)鏈表類templateclassdbclist{private:intn;//表長(zhǎng)度dnode*header;//表頭,表尾指針public:dbclist();//構(gòu)造函數(shù)~dbclist(){erase();deleteheader};//

5、析構(gòu)函數(shù)voiderase();//刪除表結(jié)點(diǎn)boolempty()const{returnn==0;}//測(cè)試表是否為空intsize()const{returnn;}//表的長(zhǎng)度boolretrieve(intk,Type&x)const;//查找表位置k處的元素intlocate(constType&x)const;//計(jì)算元素x在表中的位置dblist&insert(intk,constType&x);//插入結(jié)點(diǎn)dblist&erase(intk,Type&x);//刪除結(jié)點(diǎn)voidprint_list(ostream&ou

6、t)const;//輸出雙鏈表};2.7雙向鏈表8構(gòu)造函數(shù)—僅頭結(jié)點(diǎn)templatedbclist::dbclist(){dnode*y=newdnode;//申請(qǐng)新結(jié)點(diǎn)yy->left=y;y->right=y;//構(gòu)建雙向循環(huán)鏈header=y;//表中只有一個(gè)哨兵結(jié)點(diǎn)n=0;//空表}空表headery2.7雙向鏈表9析構(gòu)函數(shù)—erase()函數(shù)templatevoiddbclist::erase(){dnode*current;//當(dāng)前結(jié)點(diǎn)dnod

7、e*next;//下一結(jié)點(diǎn)if(header==0)return;//已是空表current=header->right;//current初始化while(!empty()){//若表非空則依次刪除表中結(jié)點(diǎn)next=current->right;deletecurrent;n--;//n實(shí)際控制循環(huán)次數(shù)current=next;}}2.7雙向鏈表headera1a2an……currentnextcurrentnextcurrentnextcurrent10基本思想:從第1個(gè)結(jié)點(diǎn)開始依次向后掃描,直到找到位置k上的元素,并存于x中,且返回ture

8、,位置k無效返回false。查找位置k元素并存于x中

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。