




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
雙向鏈表線性表(List)部分操作的實(shí)現(xiàn)小結(jié)和作業(yè)雙向循環(huán)鏈表習(xí)題講解復(fù)習(xí)一元多項(xiàng)式雙向鏈表線性表(List)部分操作的實(shí)現(xiàn)小結(jié)和作業(yè)雙向循環(huán)鏈復(fù)習(xí)-單鏈表a1a2a3LL邏輯形態(tài)空鏈表復(fù)習(xí)-單鏈表a1a2a3LL邏輯形態(tài)空鏈表復(fù)習(xí)-循環(huán)單鏈表a1a2a3L尾指針:a1a2a3L頭指針:L復(fù)習(xí)-循環(huán)單鏈表a1a2a3L尾指針:a1a2a3L頭指針:雙向鏈表一、作用:方便定位一個(gè)結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn)和后繼結(jié)點(diǎn)二、結(jié)點(diǎn)的形式ai三、C語(yǔ)言描述typedefstructDuLNode{ElemTypedata;
structDuLNode*prior;
structDuLNode*next;
}DuLNode;雙向鏈表一、作用:方便定位一個(gè)結(jié)點(diǎn)的前驅(qū)結(jié)點(diǎn)和后繼結(jié)點(diǎn)二、結(jié)雙向鏈表五、邏輯形態(tài)四、頭指針的描述typedefstructDuLNode*DuLinkList;La2a3a1L雙向鏈表五、邏輯形態(tài)四、頭指針的描述typedefstr部分操作的實(shí)現(xiàn)InitList(&L)ListInsert(&L,i,e)ListDelete(&L,i,&e)ListLength(L)部分操作的實(shí)現(xiàn)InitList(&L)ListInsert(InitListStatusInitList(DuListLink&L){node=(DuLNode*)malloc(sizeof(DuLNode));}return(OK);if(!node)return(ERROR);node->prior=node->next=NULL;L=node;LInitListStatusInitList(DuListListLength1、p指向頭結(jié)點(diǎn),j=02、如果p->next不為空,j++,p->next3、重復(fù)2,直到p->next為空,j即為長(zhǎng)度。a2a3a1LListLength1、p指向頭結(jié)點(diǎn),j=02、如果p->ListLength(討論)1、p指向頭結(jié)點(diǎn),j=02、如果p->prior不為空,j++,p->prior3、重復(fù)2,直到p->prior為空,j即為長(zhǎng)度。a2a3a1LListLength(討論)1、p指向頭結(jié)點(diǎn),j=02、如ListLengthintListLength(DuLinkListL){count=0;p=p->next;count++}}return(count);p=L;while(p->next){count=0;p=p->prior;count++}}return(count);p=L;while(p->prior){ListLengthintListLength(DuLinListInsert邏輯結(jié)構(gòu)的變化<ai-1,ai>→<ai-1,e>,<e,ai>(a1,…,ai-1,ai,…,an)
→
(a1,…,ai-1,e,ai,…,an)存儲(chǔ)結(jié)構(gòu)的變化ListInsert邏輯結(jié)構(gòu)的變化<ai-1,ai>ListInsertai-1aies->next=p->next;s->prior=p;
p->next=s;
s->next->prior=s;
psai-1aiListInsertai-1aies->next=p->ListInsert1、p指向頭結(jié)點(diǎn)分析:2、執(zhí)行p=p->nexti-1次,使得p指向第i-1個(gè)結(jié)點(diǎn)3、申請(qǐng)一個(gè)新結(jié)點(diǎn)s,調(diào)整s、第i-1和第i個(gè)結(jié)點(diǎn)的指針ListInsert1、p指向頭結(jié)點(diǎn)分析:2、執(zhí)行p=p->ListInsert找到第i-1個(gè)結(jié)點(diǎn)的代碼是:p=L;j=0;while(j<i-1
){p=p->next;j++}ListInsert找到第i-1個(gè)結(jié)點(diǎn)的代碼是:p=L;jListInsert生成一個(gè)新結(jié)點(diǎn)存放數(shù)據(jù)元素e的代碼是:s=(DuLNode*)malloc(sizeof(DuLNode));if(!s)return(ERROR);s->data=e;ListInsert生成一個(gè)新結(jié)點(diǎn)存放數(shù)據(jù)元素e的代碼是:ListInserts->next=p->next;s->prior=p;
p->next=s;
s->next->prior=s;
ListInserts->next=p->next;ListInsert(討論)a2a3a1Less->next=p->next;s->prior=p;
p->next=s;
s->next->prior=s;
i=1?i=length+1???ListInsert(討論)a2a3a1Less->nextListDelete(討論)
(a1,…,ai-1,ai,ai+1,…,an)<ai-1,ai>,<ai,ai+1><ai-1,ai+1>(a1,…,ai-1,ai+1,…,an)邏輯結(jié)構(gòu)的變化:存儲(chǔ)結(jié)構(gòu)的變化:ListDelete(討論)(a1,…,ai-1,aListDelete(討論)ai-1aiai+1p->next=p->next->next;p->next->prior=p;pai-1qq=p->next;ListDelete(討論)ai-1aiai+1p->nexListDelete(討論)1、p指向頭結(jié)點(diǎn)q=p->next;p->next=p->next->next;
p->next->prior=p;
e=q->data;free(q);2、執(zhí)行i-1次p=p->next,p指向了第i-1個(gè)結(jié)點(diǎn)3、q=p->next,q指向第i個(gè)結(jié)點(diǎn)4、修改第i-1個(gè)和第i個(gè)結(jié)點(diǎn)的指針5、釋放結(jié)點(diǎn)qListDelete(討論)1、p指向頭結(jié)點(diǎn)q=p->nListDelete(討論)a2a3a1Lp->next=p->next->next;p->next->prior=p;ai-1aiai+1pai-1i=1?i=length???ListDelete(討論)a2a3a1Lp->next=雙向循環(huán)鏈表1、每個(gè)結(jié)點(diǎn)的next域構(gòu)成了一個(gè)循環(huán)單鏈表2、每個(gè)結(jié)點(diǎn)的prior域構(gòu)成了另一個(gè)循環(huán)單鏈表邏輯形態(tài)La2a3a1L雙向循環(huán)鏈表1、每個(gè)結(jié)點(diǎn)的next域構(gòu)成了一個(gè)循環(huán)單鏈表2、雙向循環(huán)鏈表-Insertai-1aiepsai-1ais->next=p->next;s->prior=p;
p->next=s;
s->next->prior=s;
a2a3a1L雙向循環(huán)鏈表-Insertai-1aiepsai-1ais-雙向循環(huán)鏈表-Deletep->next=p->next->next;p->next->prior=p;a2a3a1Lai-1pai-1aiai+1雙向循環(huán)鏈表-Deletep->next=p->next線性表的應(yīng)用---一元多項(xiàng)式p=(p0,p1,…,pn)但是對(duì)于形如:S(x)=1+3x10000–2x20000線性表的應(yīng)用---一元多項(xiàng)式p=(p0,p1,…,p稀疏一元多項(xiàng)式
一般情況下的一元稀疏多項(xiàng)式可寫成:
Pn(x)=p1xe1+p2xe2+…+pmxem其中:pi是指數(shù)為ei的項(xiàng)的非零系數(shù),0≤e1<e2<┄<em=n可以下列線性表表示:((p1,e1),(p2,e2),…,(pm,em))稀疏一元多項(xiàng)式一般情況下的一元稀疏多項(xiàng)式可寫成:可以下列稀疏一元多項(xiàng)式
P999(x)=7x3-2x12-8x999例如:((7,3),(-2,12),(-8,999))稀疏一元多項(xiàng)式P999(x)=7x3-2x12-稀疏一元多項(xiàng)式的實(shí)現(xiàn)typedefstruct{//項(xiàng)的表示
floatcoef;//系數(shù)
intexpn;//指數(shù)}
ElemType;typedefLinkListpolynomial;
//用帶表頭結(jié)點(diǎn)的有序鏈表表示多項(xiàng)式稀疏一元多項(xiàng)式的實(shí)現(xiàn)typedefstruct{一元多項(xiàng)式的操作AH=1-3x6+7x12BH=-x4+3x6-9x10+8x14-36712AH36-910814BH-1410
10CH-14-910712814
一元多項(xiàng)式的操作AH=1-3x6+7x12-3習(xí)題講解-2.212.21逆置順序表a1a2a3a4……an-3an-2an-1anL.elemL.lengthL.listsizeanan-1an-2an-3……a4a3a2a1L.elemL.lengthL.listsizea1
ana2an-1a3an-2ai
an-i+1i=1,…,length/2習(xí)題講解-2.212.21逆置順序表a1習(xí)題講解-2.21voidreverse(SqList&l){if(L.length<=1)return;for(i=1;i<=L.length%2;i++){tmp=L.elem[i-1];L.elem[i-1]=L.elem[L.length-i];L.elem[L.length-i]=L.elem[i-1];}}ai
an-i+1i=1,…,length/2習(xí)題講解-2.21voidreverse(SqList習(xí)題講解-2.22(方法一)La1a2…an2.22逆置線性鏈表Lanan-1…a1習(xí)題講解-2.22(方法一)La1a2…an2.22逆置線習(xí)題講解-2.22(方法一)(a1,a2,…,ai-1,ai,ai+1,…,an-1,an)(an,an-1,…,ai+1,ai,ai-1,…,a2,a1)ai的前驅(qū)變成了后繼,后繼變成了前驅(qū)該問(wèn)題的核心是要修改數(shù)據(jù)元素的鄰里關(guān)系習(xí)題講解-2.22(方法一)(a1,a2,…,ai-1習(xí)題講解-2.22(方法一)1、p指向要修改指針的結(jié)點(diǎn),初始時(shí)是a12、q指向p的后繼?否則,修改p的指針,鏈就斷了3、t指向p的前驅(qū)?在新表中t是p的后繼4、p->next=t,t=p,p=q,q=p->next5、重復(fù)執(zhí)行,直到q為空指針La1a2ptq6、L->next->next=NULL,L->next=p;習(xí)題講解-2.22(方法一)1、p指向要修改指針的結(jié)點(diǎn),初始習(xí)題講解-2.22(方法一)1、如果表中只有一個(gè)結(jié)點(diǎn),不處理2、如果表是空表,不處理LL習(xí)題講解-2.22(方法一)1、如果表中只有一個(gè)結(jié)點(diǎn),不處理習(xí)題講解-2.22(方法一)voidreverse(LinList&L){if(!L->next||!L->next->next)return;//空表或單元素t=L,p=t->next,q=p->next;//t,p,q分別指向ai-1,ai,ai+1while(q){p->next=t;t=p,p=q,q=p->next;}L->next->next=NULL;L->next=p;}習(xí)題講解-2.22(方法一)voidreverse(Lin習(xí)題講解-2.22(方法二)a1a2a3
LLp
succa1
psucca2psucca3p習(xí)題講解-2.22(方法二)a1a2a3LLpsucca習(xí)題講解-2.22(方法二)voidreverse(LinkList&L){//逆置帶頭結(jié)點(diǎn)的單鏈表Lp=L->next;L->next=NULL;while(p){suc
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025中化集團(tuán)信息安全管理崗招聘1人(北京)筆試歷年參考題庫(kù)附帶答案詳解
- 診斷學(xué)模擬試題含參考答案
- 留置導(dǎo)尿常見(jiàn)護(hù)理診斷
- 備孕健康小課堂
- 河南往年單招數(shù)學(xué)試卷
- 動(dòng)物的大尾巴說(shuō)課課件
- 中國(guó)沙發(fā)革行業(yè)市場(chǎng)全景評(píng)估及發(fā)展戰(zhàn)略規(guī)劃報(bào)告
- 百度怎么發(fā)布教學(xué)課件
- 2025年婦科炎癥類用藥項(xiàng)目立項(xiàng)申請(qǐng)報(bào)告
- 2025年中國(guó)改裝車行業(yè)市場(chǎng)調(diào)查研究及投資前景預(yù)測(cè)報(bào)告
- 2024年華東電網(wǎng)考試題庫(kù)
- 演講比賽評(píng)分表和計(jì)分表
- 2024年糧油倉(cāng)儲(chǔ)管理員理論知識(shí)競(jìng)賽理論考試題庫(kù)500題(含答案)
- 24年-注安建筑-必背簡(jiǎn)答題
- 事業(yè)單位考試(公共基礎(chǔ)知識(shí))3000題每日練習(xí)021
- 流浪的紙飛機(jī)讓壓力飛
- 財(cái)務(wù)經(jīng)理招聘筆試題及解答(某大型央企)
- 2024年新北師大版七年級(jí)上冊(cè)數(shù)學(xué)全冊(cè)課件(新版教材)
- 高邊坡支護(hù)開(kāi)挖施工專項(xiàng)方案(專家論證)
- 《小型水庫(kù)雨水情測(cè)報(bào)和大壩安全監(jiān)測(cè)設(shè)施建設(shè)與運(yùn)行管護(hù)技術(shù)指南》
- 中小學(xué)、幼兒園系列職稱評(píng)審申報(bào)表(A4版)
評(píng)論
0/150
提交評(píng)論