版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
線性結(jié)構(gòu)-雙鏈表雙鏈表的引出
單鏈表的不足
每個(gè)結(jié)點(diǎn)的指針域只放了一個(gè)指針,該指針指向該結(jié)點(diǎn)的直接后繼。因此,每查找一個(gè)數(shù)據(jù)元素,都必須從頭結(jié)點(diǎn)開始,由前向后單方向搜索。datanextdatanextprior指向直接前趨數(shù)據(jù)域指向直接后繼C語言描述:
structnode{
elemtypedata;
structnode*next;}
structnode{
elemtypedata;
structnode*prior,*next;}邏輯示意圖若P是指向表中某一結(jié)點(diǎn)(頭結(jié)點(diǎn)除外)的指針,明顯有如下關(guān)系:
P->next->prior=PP->prior->next=Pa1a2an
空雙鏈表的建立(初始化)插入結(jié)點(diǎn)刪除結(jié)點(diǎn)雙鏈表的基本操作空雙鏈表的建立操作描述:建立一個(gè)帶頭結(jié)點(diǎn)的單鏈表
算法:1、分配一個(gè)結(jié)點(diǎn)的內(nèi)存空間C語言描述:
voidinitiate_list(node**h){
*h=(node*)mallcoc(sizeof(node));(*h)->prior=NULL;(*h)->next=NULL;}2、使鏈表指針指向該頭結(jié)點(diǎn)插入結(jié)點(diǎn)操作描述:在第i個(gè)元素后插入新元素anew,構(gòu)成一個(gè)新的雙鏈表。算法分析:同單向鏈表一樣,先打開ai和ai+1之間的鏈,插入anew后,重建鏈接關(guān)系。aiNPai+1NPanewNP.3、anew->next=ai+11、ai->next=anew2、anew->previous=ai4、ai+1->previous=anewppnewC語言描述voidinsert1(node*p,elemtype
anew){node*pnew;
pnew=(node*)malloc(sizeof(node));
pnew->data=anew;}
p->next->prior-=pnew;
pnew->next=p->next;
pnew->prior=p;
p->next=pnew
;voidinsert2(node*h,int
i,elemtype
anew){node*p,*pnew;
int
j;//定位,使p指向第i個(gè)結(jié)點(diǎn)
p=h;
for(j=0;j<i;j++){
p=p->next;
if(p==NULL)return;
}
pnew=(node*)malloc(sizeof(node));……}刪除結(jié)點(diǎn)操作描述:刪除雙向鏈表的第i個(gè)元素。算法分析:相對(duì)雙向鏈表的插入操作而言,刪除比較簡(jiǎn)單,只需要重新建立元素ai-1和元素ai+1之間的鏈接,并釋放元素ai的空間就可以了。ai-1NPaiNPai+1NPpaiNPVoiddelete(node*p){p->prior->next=p->next;
p->next->prior=p->prior;free(p);}雙向鏈表的性能分析優(yōu)點(diǎn):可以從任一節(jié)點(diǎn)開始,訪問表中的任一節(jié)點(diǎn)。訪問順序自由。缺點(diǎn):占用空間增多,內(nèi)存利用率減低。根據(jù)實(shí)際需要,選擇使用單向鏈表還是雙向鏈表。線性結(jié)構(gòu)-循環(huán)鏈表循環(huán)鏈表
循環(huán)鏈表是一種首尾相接的鏈表。在不增加存儲(chǔ)空間的前提下,實(shí)現(xiàn)了雙向鏈表的操作特點(diǎn),即可以從任一節(jié)點(diǎn)開始訪問所有節(jié)點(diǎn)。a1a2anha1a2anhhhhh尾指針a1a2anr循環(huán)單鏈表更常用尾指針來命名。hr優(yōu)點(diǎn):查找鏈表開始結(jié)點(diǎn)和終端結(jié)點(diǎn)都很方便,其存儲(chǔ)位置分別為r->next->next和r。合并兩個(gè)循環(huán)鏈表將兩個(gè)線性表(a1,a2,……,an
)和(b1,b2,……,bn
)鏈接成一個(gè)線性表(a1,a2,……,an
,b1,b2,……,bn
)。頭指針表示的單鏈表或循環(huán)單鏈表:必需遍歷第一個(gè)鏈表.尾指針表示的循環(huán)單鏈表:只需要修改一些指針域.a1a2anhabababrarbababa1a2anrb1b2bnra1a2anb1b2bnrvoidconnect_r(node*ra,node*rb){p=rb->next;
rb->next=ra->next;
ra->next=p>next;
free(p);}
voidconnect_h(node*ha,node*hb){node*p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版木工技藝培訓(xùn)與施工管理承包協(xié)議4篇
- 2025年度個(gè)人財(cái)產(chǎn)評(píng)估收據(jù)模板制作服務(wù)協(xié)議3篇
- 2025年度因婚外情引起的離婚訴訟調(diào)解協(xié)議書4篇
- 2025年度環(huán)保工程承包商借款合同規(guī)范文本3篇
- 二零二五年度出租房水電費(fèi)分時(shí)電價(jià)應(yīng)用合同3篇
- 二零二五年度農(nóng)場(chǎng)租賃合同農(nóng)業(yè)產(chǎn)業(yè)鏈整合協(xié)議4篇
- 2025版新型綠色建材采購供應(yīng)合同4篇
- 2025年度電商企業(yè)風(fēng)險(xiǎn)管理與服務(wù)協(xié)議4篇
- 2025年度民間擔(dān)保公司資產(chǎn)抵押擔(dān)保合同模板4篇
- 2025年度門業(yè)市場(chǎng)調(diào)研與營(yíng)銷策劃合同4篇
- 【地理】地圖的選擇和應(yīng)用(分層練) 2024-2025學(xué)年七年級(jí)地理上冊(cè)同步備課系列(人教版)
- (正式版)CB∕T 4552-2024 船舶行業(yè)企業(yè)安全生產(chǎn)文件編制和管理規(guī)定
- JBT 14588-2023 激光加工鏡頭 (正式版)
- 2024年四川省成都市樹德實(shí)驗(yàn)中學(xué)物理八年級(jí)下冊(cè)期末質(zhì)量檢測(cè)試題含解析
- 九型人格與領(lǐng)導(dǎo)力講義
- 廉潔應(yīng)征承諾書
- 2023年四川省成都市中考物理試卷真題(含答案)
- 泵車述職報(bào)告
- 2024年山西文旅集團(tuán)招聘筆試參考題庫含答案解析
- 恢復(fù)中華人民共和國(guó)國(guó)籍申請(qǐng)表
- 管理期貨的趨勢(shì)跟蹤策略 尋找危機(jī)阿爾法
評(píng)論
0/150
提交評(píng)論