一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

UC頭條:雙鏈表全部知識(shí)總結(jié)(初始化、插入、刪除、遍歷)

 cnzrp 2023-06-21 發(fā)布于山西

1.雙鏈表的初始化

初始化雙鏈表:首先通過malloc函數(shù)分配一個(gè)頭結(jié)點(diǎn)空間,通過判斷鏈表L是否為空來確定是否分配成功。將頭結(jié)點(diǎn)的prior永遠(yuǎn)指向NULL,頭結(jié)點(diǎn)的下一個(gè)結(jié)點(diǎn)暫時(shí)沒有所以也指向NULL

boolInitDLinkList(DLinkList&L){L=(DNode*)malloc(sizeof(DNode));if(L==NULL)returnfalse;L->prior=NULL;L->next=NULL;retruntrue;}

1.1判斷雙鏈表是否為空

要想判斷雙鏈表是否為空,即判斷頭結(jié)點(diǎn)的next的指針是否為空

boolEmpty(DLinkListL){if(L->next==NULL)returnfalse;elsereturntrue;}

2.雙鏈表的插入

實(shí)現(xiàn)需求:在p結(jié)點(diǎn)之后插入s結(jié)點(diǎn)

2.1p結(jié)點(diǎn)不是最后一個(gè)結(jié)點(diǎn)

點(diǎn)擊加載圖片

分析步驟:

首先會(huì)把s結(jié)點(diǎn)指向p->next結(jié)點(diǎn)

p的后繼結(jié)點(diǎn)的前向指針指向s

s結(jié)點(diǎn)的前向指針指向p結(jié)點(diǎn)

p的后向指針指向s結(jié)點(diǎn)

點(diǎn)擊加載圖片

代碼實(shí)現(xiàn):

boolInsertNextDNode(DNode*p,DNode*s){s->nest=p->next;p->next->prior=s;s->prior=p;p->next=s;}

2.2p結(jié)點(diǎn)是最后一個(gè)結(jié)點(diǎn)

點(diǎn)擊加載圖片

當(dāng)p結(jié)點(diǎn)是最后一個(gè)結(jié)點(diǎn)的時(shí)候,顯然這時(shí)候p->next=NULL,所以就需要對(duì)p->next->prior=s改良,判斷p結(jié)點(diǎn)是否有后續(xù)結(jié)點(diǎn),從而判斷是不是需要修改p下一個(gè)結(jié)點(diǎn)的前向指針

if(p==NULL||S==NULL)returnfalse;s->next=p->next;if(p->next!=NULL)p->next->prior=s;

3.雙鏈表的刪除

3.1刪除p的后繼節(jié)點(diǎn)

分析:和插入的思考方式一樣,同樣我們需要考慮p的后繼結(jié)點(diǎn)是否為NULL。

找到p的后繼結(jié)點(diǎn)

判斷p的后繼結(jié)點(diǎn)是否為NULL,為NULL即p沒有后繼

將p的下一個(gè)結(jié)點(diǎn)指向q的下一個(gè)結(jié)點(diǎn)

判斷q結(jié)點(diǎn)是否為最后一個(gè)結(jié)點(diǎn)

free(q)

代碼實(shí)現(xiàn):

boolDeleteNextDNode(DNode*p){if(p==NULL)returnfalse;DNode*q=p->next;if(q==NULL)returnfalse;p->next=q->next;if(q->next!=NULL)q->next->prior=q;free(q);returntrue;}

3.2銷毀鏈表

實(shí)現(xiàn)步驟:

循環(huán)釋放各個(gè)數(shù)據(jù)結(jié)點(diǎn)

同時(shí)釋放頭結(jié)點(diǎn)

頭指針指向空

voidDestoryList(DLinkList&L){while(L->nex!=NULL)DeleteNextDNode(L);free(L);L=NULL;}

4.雙鏈表的遍歷

對(duì)結(jié)點(diǎn)p做相應(yīng)的處理,如打印

4.1后向遍歷

while(p!=NULL){p=p->next;}

4.2前向遍歷

while(p!=NULL){p=p->prior;}

4.3前向遍歷(跳過頭結(jié)點(diǎn))

while(p->prior=NULL){p=p->prior;}

5.總結(jié)

修改指針的時(shí)候需要注意順序

雙鏈表可以很方便的找到給定結(jié)點(diǎn)的前驅(qū)節(jié)點(diǎn),對(duì)前驅(qū)節(jié)點(diǎn)執(zhí)行后插操作,這樣就可以實(shí)現(xiàn)按位序插入的前插操作。

雙鏈表不具備隨機(jī)存取特性,查找操作只能通過順序遍歷實(shí)現(xiàn)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    性感少妇无套内射在线视频| 男人和女人干逼的视频| 欧洲自拍偷拍一区二区| 日本加勒比系列在线播放| 精品少妇人妻一区二区三区 | 欧美一区二区三区高潮菊竹| 欧洲精品一区二区三区四区| 熟女白浆精品一区二区| 粉嫩一区二区三区粉嫩视频| 少妇福利视频一区二区| 国产一区二区精品高清免费| 极品少妇一区二区三区精品视频 | 国产欧美韩日一区二区三区| 精品一区二区三区乱码中文| 狠狠做深爱婷婷久久综合| 蜜桃av人妻精品一区二区三区| 日韩欧美三级视频在线| 视频一区二区黄色线观看| 大香蕉伊人一区二区三区| 色鬼综合久久鬼色88| 日韩性生活视频免费在线观看| 91欧美日韩中在线视频| 欧美极品欧美精品欧美| 欧美熟妇喷浆一区二区| 亚洲欧美日韩综合在线成成| 亚洲国产中文字幕在线观看| 欧美av人人妻av人人爽蜜桃| 亚洲一区二区三区在线中文字幕 | 久热青青草视频在线观看| 欧美日韩一区二区午夜| 国产精品亚洲一级av第二区| 国产精品白丝久久av| 内用黄老外示儒术出处| 精品人妻一区二区四区| 五月激情五月天综合网| 国产肥妇一区二区熟女精品| 97人妻精品免费一区二区| 91欧美日韩精品在线| 亚洲精选91福利在线观看| 人妻少妇系列中文字幕| 亚洲清纯一区二区三区|