




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2.5線性表的其它存儲方法循環(huán)鏈表La1ai-1an∧aip將單鏈表的首尾相接,將終端結(jié)點(diǎn)的指針域由空指針改為指向頭結(jié)點(diǎn),構(gòu)成單循環(huán)鏈表,簡稱循環(huán)鏈表。2.5線性表的其它存儲方法循環(huán)鏈表L空循環(huán)鏈表La1ai-1anai非空循環(huán)鏈表循環(huán)鏈表是否為空的條件是:L->next==L單鏈表是否為空的條件是:L->next==NULLL->next==L為真L->next!=L為真La1ai-1anai2.5線性表的其它存儲方法循環(huán)鏈表——插入xspxspxsp循環(huán)鏈表的插入操作與單鏈表的插入操作相同La1ai-1ai+1ai2.5線性表的其它存儲方法循環(huán)鏈表——刪除p循環(huán)鏈表的刪除操作與單鏈表的刪除操作相同anqvoidxhDelete(LinkListL,inti,ElemType&x){/*讓p指向第i-1個(gè)結(jié)點(diǎn)*/p=L;j=0;while(p->next->next!=L&&j<i-1){p=p->next;j++;}
if(p->next->next==L&&j<i-1||j>i-1)
printf(“位置異?!?;else{q=p->next;x=q->data;p->next=q->next;deleteq;}}2.5線性表的其它存儲方法循環(huán)鏈表——刪除與單鏈表的刪除操作相比,差別是什么?i的取值范圍[1,n]i>n或i<1如何查找開始結(jié)點(diǎn)和尾結(jié)點(diǎn)?2.5線性表的其它存儲方法循環(huán)鏈表La1ai-1anai開始結(jié)點(diǎn):L->next尾結(jié)點(diǎn):將單鏈表掃描一遍,時(shí)間為O(n)有沒有更簡單的方法?reara1ai-1anai開始結(jié)點(diǎn):rear->next->next終端結(jié)點(diǎn):rear2.5線性表的其它存儲方法循環(huán)鏈表帶尾指針的循環(huán)鏈表一個(gè)存儲結(jié)構(gòu)設(shè)計(jì)得是否合理,取決于基于該存儲結(jié)構(gòu)的運(yùn)算是否方便,時(shí)間性能是否提高。既方便找頭又方便找尾雙鏈表2.5線性表的其它存儲方法如何求結(jié)點(diǎn)p的直接前驅(qū),時(shí)間性能?La1ai-1anaip為什么可以快速求得結(jié)點(diǎn)p的后繼?如何快速求得結(jié)點(diǎn)p的前驅(qū)?雙鏈表:在單鏈表的每個(gè)結(jié)點(diǎn)中再設(shè)置一個(gè)指向其前驅(qū)結(jié)點(diǎn)的指針域。雙鏈表結(jié)點(diǎn)結(jié)構(gòu):priordatanextdata:數(shù)據(jù)域,存儲數(shù)據(jù)元素;prior:指針域,存儲該結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn)地址;next:指針域,存儲該結(jié)點(diǎn)的后繼結(jié)點(diǎn)地址。2.5線性表的其它存儲方法typedefstructDulNode{ElemTypedata;structDulNode*prior,*next;}DulNode,*DuLinkList;
2.5線性表的其它存儲方法雙鏈表啟示?時(shí)空權(quán)衡——空間換取時(shí)間priordatanext定義結(jié)點(diǎn)結(jié)構(gòu):雙向鏈表的初始化/*初始化函數(shù)*/intinitDLinkList(DuLinkList&L){ L=newDulNode;//申請頭結(jié)點(diǎn)
if(L==NULL){ printf("申請空間失??!\n"); exit(0); } L->next=L->prior=L; return1;}空表L雙鏈表的操作——插入s->prior=p;s->next=p->next;p->next->prior=s;p->next=s;2.5線性表的其它存儲方法ai-1ai操作接口:
voidduInsert(DuLinkListL,inti,ElemTypex);
pxs注意指針修改的相對順序intinsDLinkList(DuLinkListL,inti,ElemTypex){ DuLinkListp=L;//工作指針指向頭結(jié)點(diǎn)
DuLinkListnewp;//用于指向新結(jié)點(diǎn)
intj=0;//計(jì)數(shù)器置0 //尋找插入位置,使得工作指針p指向第i-1個(gè)結(jié)點(diǎn)
while(p->next!=L&&j<i-1){p=p->next;j++;}
if(p->next==L&&j<i-1||j>i-1){ printf("位置不合理!\n"); return0; }//接后
按后繼方向,尋找插入位置//插入
newp=newDulNode; newp->data=x;newp->next=p->next;newp->prior=p; p->next->prior=newp; p->next=newp; return1;}按后繼方向?qū)ふ乙獎h除的結(jié)點(diǎn)intdelDLinkList(DuLinkListL,inti,ElemType&x){DuLinkListp=L;//工作指針指向頭結(jié)點(diǎn)
DuLinkListq;//指向被刪除的結(jié)點(diǎn)
intj=0;//計(jì)數(shù)器置0 //尋找刪除位置,使得工作指針p指向第i-1個(gè)結(jié)點(diǎn)
while(p->next->next!=L&&j<i-1){p=p->next;j++;}
if(p->next->next==L&&j<i-1||j>i-1){ printf("位置不合
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 行政管理標(biāo)準(zhǔn)化管理試題及答案
- 婦科術(shù)后出院健康宣教
- 橋梁工程概述 - 橋梁養(yǎng)護(hù)技術(shù)課件
- 小學(xué)課件-環(huán)保知識
- 2022-2023學(xué)年山東省濟(jì)寧市汶上縣人教版四年級下冊期末質(zhì)量檢測數(shù)學(xué)試卷(原卷版)
- 行政管理的市場導(dǎo)向及試題答案分析
- 行政法學(xué)問題知識樹與試題答案分享
- 2025年語文考試內(nèi)容及試題及答案
- 學(xué)術(shù)報(bào)告與臨床案例研究試題及答案
- 2025年藥師考試解剖生理基礎(chǔ)試題及答案
- 攤位簡單轉(zhuǎn)讓合同范本2024年
- 用友大易-2022雇主品牌白皮書
- 《公路橋梁施工監(jiān)控技術(shù)規(guī)程》(JTGT3650-01-2022)
- 珠寶零售店合伙人退伙協(xié)議
- 南方區(qū)域并網(wǎng)發(fā)電廠兩個(gè)細(xì)則完整版
- 2024年美國戶外露營裝備市場現(xiàn)狀及上下游分析報(bào)告
- 沖壓模具成本分析表(模板)
- 2024雇主品牌調(diào)研中國大陸區(qū)報(bào)告-任仕達(dá)-202406
- 神經(jīng)電生理評估在康復(fù)醫(yī)學(xué)的應(yīng)用
- 第7課全球航路的開辟和歐洲早期殖民擴(kuò)張(課件)-【中職專用】《世界歷史》趣味課堂同步教學(xué)課件(高教版2023基礎(chǔ)模塊)
- MOOC 化學(xué)與社會-大連理工大學(xué) 中國大學(xué)慕課答案
評論
0/150
提交評論