




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
DATA1065865姓名學(xué)號(hào)成績(jī)班級(jí)李紅976105995機(jī)97.6ABCDEFG數(shù)據(jù)結(jié)構(gòu)第二章
數(shù)據(jù)結(jié)構(gòu)與算法(續(xù))
2.3棧和隊(duì)列棧和隊(duì)列是兩種特殊的線性表,它們是運(yùn)算時(shí)要受到某些限制的線性表,故也稱為限定性的數(shù)據(jù)結(jié)構(gòu)。(續(xù))
隊(duì)列的主要運(yùn)算(1)設(shè)置一個(gè)空隊(duì)列;(2)插入一個(gè)新的隊(duì)尾元素,稱為進(jìn)隊(duì);(3)刪除隊(duì)頭元素,稱為出隊(duì);(4)讀取隊(duì)頭元素;2.3.2隊(duì)列2.3.2.1隊(duì)列的定義與運(yùn)算
定義:一種特殊的線性結(jié)構(gòu),限定只能在表的一端進(jìn)行插入,在表的另一端進(jìn)行刪除的線性表。此種結(jié)構(gòu)稱為先進(jìn)先出(FIFO)表。
a1,
a2,
a3,
a4,…………
an-1,
an隊(duì)列示意圖隊(duì)頭隊(duì)尾2.隊(duì)列的存儲(chǔ)結(jié)構(gòu)(1)順序存儲(chǔ)結(jié)構(gòu)(a)線性隊(duì)列(b)循環(huán)隊(duì)列(a)線性隊(duì)列
3210(a)rear=front=-1(隊(duì)空)e3e4(c)e1,e2出隊(duì),e4入隊(duì)
隊(duì)滿rear=4fronte1e2e3
(b)rearfront(b)e1,e2,e3入隊(duì)隊(duì)空時(shí),令rear=front=-1,當(dāng)有新元素入隊(duì)時(shí),尾指針加1,當(dāng)有元素出隊(duì)時(shí),頭指針加1。故在非空隊(duì)列中,頭指針始終指向隊(duì)頭元素前一個(gè)位置,而尾指針始終指向隊(duì)尾元素的位置(b)
循環(huán)隊(duì)列
rearfront
0123(3)隊(duì)空隊(duì)滿條件:(Q.rear+1)%MAX=Q.front注:實(shí)際上為了避免與隊(duì)空標(biāo)志沖突,還留有一個(gè)空間。將頭尾連接成一個(gè)環(huán),形成循環(huán)隊(duì)列。
rear(1)一般情況front0123e4e3
(2)
隊(duì)滿fronte3
e40123reare5循環(huán)隊(duì)列中加入一個(gè)元素的算法:
intEnQueue(intQ[],intx,int*pf,int*pr)Q[max]已有的循環(huán)隊(duì)列將插入的值已有隊(duì)列的頭指針已有隊(duì)列的尾指針循環(huán)隊(duì)列中加入一個(gè)元素的算法:
intEnQueue(intQ[],intx,int*pf,int*pr){intfront,rear;front=*pf;rear=*pr;if((rear+1)%MAX==front)return(0);else{rear=(rear+1)%MAX;Q[rear]=x;*pr=rear;return(1);}}
rearMax=4,Rear+1=4front0123e4e3
rear(Rear+1)%4=0front0123e4e3rear
rearfront0123e4e3x循環(huán)隊(duì)列中刪除一個(gè)元素的算法:intDeQueue(intQ[],int*py,int*pf,int*pr)已有的循環(huán)隊(duì)列返回刪除的值的地址已有隊(duì)列的頭指針已有隊(duì)列的尾指針循環(huán)隊(duì)列中刪除一個(gè)元素的算法:intDeQueue(intQ[],int*py,int*pf,int*pr){intfront,rear;front=*pf;rear=*pr;if(rear==front)return(0);else{front=(front+1)%MAX;*py=Q[front];*pf=front;return(1);}}ana2a1
ana3a2
Q.frontQ.rear刪除一個(gè)元素添加一個(gè)元素e^a1a2anQ.frontQ.rear
(2)鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)Q.frontQ.rear隊(duì)頭隊(duì)尾Q.rearQ.front2.4數(shù)組2.4.1二維數(shù)組的定義a1a11a12……..a1n
a2a21a22……..a2n
amam1am2……..amn
….ai=(ai1,
ai2,
……..
,
ain)(1<=i<=n)(1)
按行優(yōu)先順序存放(2)
按列優(yōu)先順序存放1、
特殊矩陣(1)
下三角陣(2)
三對(duì)角陣1、
稀疏矩陣(1)
順序存儲(chǔ)結(jié)構(gòu)——三元組表示法(2)
順序存儲(chǔ)結(jié)構(gòu)稀疏矩陣的轉(zhuǎn)置運(yùn)算(3)
數(shù)組的鏈接存儲(chǔ)結(jié)構(gòu)——十字鏈表結(jié)構(gòu)2.4.2數(shù)組的順序存儲(chǔ)結(jié)構(gòu)2.4.3矩陣的壓縮存儲(chǔ)(1)
按行優(yōu)先順序存放(2)
按列優(yōu)先順序存放1、
特殊矩陣(1)
下三角陣(2)
三對(duì)角陣1、
稀疏矩陣(1)
順序存儲(chǔ)結(jié)構(gòu)——三元組表示法(2)
順序存儲(chǔ)結(jié)構(gòu)稀疏矩陣的轉(zhuǎn)置運(yùn)算(3)
數(shù)組的鏈接存儲(chǔ)結(jié)構(gòu)——十字鏈表結(jié)構(gòu)2.4.2數(shù)組的順序存儲(chǔ)結(jié)構(gòu)2.4.3矩陣的壓縮存儲(chǔ)
amn……..
am2am1……….a2n……..
a22a21a1n
…….a12
a11
a11a12……..a1n
a21a22……..a2n
am1am2……..amn
….loc(aij)=loc(a11)+[(i-1)n+(j-1)]S
按行優(yōu)先順序存放
amn……..
a2n
a1n……….
am2……..
a22
a12
am1
…….
a21
a11
a11
a12
……..
a1n
a21
a22……..
a2n
am1
am2
……..
amn
….loc(aij)=loc(a11)+[(j-1)m+(i-1)]S
按列優(yōu)先順序存放
a11
0
0
……..0
a21a22
0
……..0
an1an2
an3……..ann
….0A=按行優(yōu)先存放{a11,
a21,
a22,
a31,
a32,…,
an1,
an2,…,
ann}
前i-1行非零元素個(gè)數(shù)∑R=i(i-1)2loc(aij)=loc(a11)+[(+(j-1)]S
i(i-1)2i-1R=1下三角陣
a11
a120
…………..0
a21a22
a23
0
………...00
0
……an-1,n-2an-1.n-1an-1,n………..A=
0
a21a22
a23
0
…..00
0
…………….an,n-1ann.按行優(yōu)先存放{a11,
a12,
a21,
a22,
a23,a32,a34,
…an,n-1,
ann}
loc(aij)=loc(a11)+[2(i-1)n+(j-1)]S
三對(duì)角陣
7000150
0-40000
-2000021000-100M=2164-214-143-4221551711列行值順序存儲(chǔ)結(jié)構(gòu)——三元組表示法
7000150
0-40000
-2000021000-1002164-143-4221551711-214
700-2
0-400
00-100000
15000
00021順序存儲(chǔ)結(jié)構(gòu)稀疏矩陣的轉(zhuǎn)置運(yùn)算
-134711-241-42215152146
求轉(zhuǎn)置矩陣的算法描述為:StatusTransposeSMatrix(TSMatrixM,TSMatrix&T){//采用三元組表存儲(chǔ)稀疏矩陣,求稀疏矩陣M的轉(zhuǎn)置矩陣TT.mu=M.nu;T.nu=M.mu;T.tu=M.tu;//互換行列數(shù)if(T.tu<>0){q=1;for(col=1;col<=M.nu;++col)//對(duì)稀疏矩陣的每一列分別處理
for(p=1;p<=M.tu;++p)//按行掃描三元組表
if(M.data[P].j==col{T.data[q].i=M.data[p].j;T.data[q].j=M.data[p].i;T.data[q].e=M.data[p].e;++q}}returnOK;}//TransposeSMatrix
7000150
0-40000
-2000021
000-100M=2-4∧∧2515∧∧11-2∧4621∧∧41714-1∧∧3jerightdowni2.4數(shù)組(線性表的推廣)2.4.1二維數(shù)組的定義a1a11a12……..a1n
a2a21a22……..a2n
amam1am2……..amn
….ai=(ai1,
ai2,
……..
,
ain)(1<=i<=n)數(shù)組的運(yùn)算主要是存取元素、修改相應(yīng)的元素。(1)
按行優(yōu)先順序存放(2)
按列優(yōu)先順序存放2.4.3矩陣的壓縮存儲(chǔ)1、
特殊矩陣:值相同元素或非零元素的分布具有一定規(guī)律。(1)
下三角陣(2)
三對(duì)角陣2、
稀疏矩陣:元素分布無(wú)規(guī)律。(1)
順序存儲(chǔ)結(jié)構(gòu)——三元組表示法(2)
順序存儲(chǔ)結(jié)構(gòu)稀疏矩陣的轉(zhuǎn)置運(yùn)算(3)
數(shù)組的鏈接存儲(chǔ)結(jié)構(gòu)——十字鏈表結(jié)構(gòu)2.4.2數(shù)組的順序存儲(chǔ)結(jié)構(gòu)
a11a12…….a1n
a21
a22……..a2n……….am1
am2……..
amn
a11a12……..a1n
a21a22……..a2n
am1am2……..amn
….loc(aij)=loc(a11)+[(i-1)n+(j-1)]S
按行優(yōu)先順序存放
a11
a21…….
am1
a12
a22……..
am2……….
a1n
a2n……..
amn
a11
a12
……..
a1n
a21
a22……..
a2n
am1
am2
……..
amn
….loc(aij)=loc(a11)+[(j-1)m+(i-1)]S
按列優(yōu)先順序存放
a11
0
0
……..0
a21a22
0
……..0
an1an2
an3……..ann
….0A=按行優(yōu)先存放{a11,
a21,
a22,
a31,
a32,…,
an1,
an2,…,
ann}
前i-1行非零元素個(gè)數(shù)∑R=i(i-1)2loc(aij)=loc(a11)+[(i(i-1)/2+(j-1)]S
i-1R=1下三角陣
a11
a120
…………..0
a21a22
a23
0
………...00
0
……an-1,n-2an-1.n-1an-1,n………..A=
0
a32a33
a34
0
…..00
0
…………….an,n-1an,n按行優(yōu)先存放{a11,
a12,
a21,
a22,
a23,a32,a33,
…an,n-1,
an,n}
loc(aij)=loc(a11)+2(i-1)+(j-1)
三對(duì)角陣
7000150
0-40000
-2000021000-100M=2164-214-143-4221551711列行值順序存儲(chǔ)結(jié)構(gòu)——三元組表示法
7000150
0-40000
-2000021000-1002164-143-4221551711-214
700-2
0-400150000000
00-10
00021順序存儲(chǔ)結(jié)構(gòu)稀疏矩陣的轉(zhuǎn)置運(yùn)算
-134711-241-42215152146
求轉(zhuǎn)置矩陣的算法描述為:StatusTransposeSMatrix(TSMatrixM,TSMatrix&T){T.mu=M.nu;T.nu=M.mu;T.tu=M.tu;//互換行列數(shù)if(T.tu!=0){q=1;for(col=1;col<=M.nu;++col)//對(duì)稀疏矩陣的每一列分別處理
for(p=1;p<=M.tu;++p)//按行掃描三元組表
if(M.data[P].j==col{T.data[q].i=M.data[p].j;T.data[q].j=M.data[p].i;T.data[q].e=M.data[p].e;++q}}returnOK;}//TransposeSMatrix
7000150
0-40000
-2000021
000-100M=22-4∧∧1515∧∧41-2∧4621∧∧11734-1∧∧^ijedownright鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)表示第3列空
7000150
0-40000
-2000021
000-100M=22-4∧∧1515∧∧41-2∧4621∧∧11734-1∧∧^ijedownright鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)作業(yè):P76第12、16題第18、19題A+B*C-D/E;top1初態(tài);(a)top2OSNSBA+;(b)OS*C
NST1=B*CA+;(c)NSOST1T2;(d)NSOST2=A+T1EDT2/-;(e)NSOST3T2-;(f)T3=D/ENSOS(g)NSOST4;T4=T2-T3(h)A-B/C+D*E;top2初態(tài);(a)OSNSBA;(b)OS/C
NSA;(c)NSOST1T1=B/CA;(d)NSOST1DE+*T2T1A+;(e)NSOST2=D*ET2T3+;(f)T3=A-T1NSOST4=T2+T3(g)NSOST4;(h)優(yōu)先級(jí)相同時(shí),應(yīng)先處理?xiàng)V袛?shù)據(jù)錯(cuò)在哪?P76#11
假設(shè)一個(gè)算術(shù)表達(dá)式中包含圓括弧、方括弧和花括弧三種類型的括弧,編寫一個(gè)判別表達(dá)式中括弧是否正確配對(duì)的函數(shù).P76#11
假設(shè)一個(gè)算術(shù)表達(dá)式中包含圓括弧、方括弧和花括弧三種類型的括弧,編寫一個(gè)判別表達(dá)式中括弧是否正確配對(duì)的函數(shù).voidmain(){intlen,tag;charexp[size]=“dsgdsg(wetewt{eewtwrwer)etewtewt[wetwet]etwet}";len=strlen(exp);tag=Correct(exp,len);if(tag==1)
printf("right\n");else
printf("wrong\n");}輸出結(jié)果:wrongP76#12
設(shè)棧S為空,隊(duì)Q的狀態(tài)是abcd,其中a為隊(duì)首元素,d為隊(duì)尾元素,經(jīng)過下面兩個(gè)操作后,隊(duì)Q的狀態(tài)是()。(1)刪除隊(duì)Q中的元素,將刪除的元素插入棧S,直到隊(duì)Q為空。(2)依次將棧S中的元素插入隊(duì)Q,直到棧S為空。(a)abcd(b)acbd(c)dcba(d)bacddcbafrontreartop隊(duì)Q棧Sfrontreardcbatop隊(duì)Q棧Sabcdfrontreartop隊(duì)Q棧ScP76#13
若進(jìn)棧序列為3,5,7,9,進(jìn)棧過程中可以出棧,則不可能的一個(gè)出棧次序是()。(a)7,5,3,9(b)
9,7,5,3(c)7,5,9,3(d)
9,5,7,3P76#13
若進(jìn)棧序列為3,5,7,9,進(jìn)棧過程中可以出棧,則不可能的一個(gè)出棧次序是()。(a)7,5,3,9(b)
9,7,5,3(c)7,5,9,3(d)
9,5,7,3dA[n]A[T+1]A[T]….A[1]A[T]是棧頂元素T103040baseP76#14….T=T+1P76#15用一維數(shù)組設(shè)計(jì)棧,初態(tài)是???,top=0?,F(xiàn)有輸入序列是a、b、c、d,經(jīng)過push、push、pop、push、pop、push操作后,輸出序列是(),棧頂指針是(
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 激光技術(shù)基礎(chǔ)知識(shí)點(diǎn)羅列試題及答案
- 蘇教版拼音考試題及答案
- 藥理學(xué)基礎(chǔ)知識(shí)考查試題及答案
- 系統(tǒng)規(guī)劃與管理師考試中考生應(yīng)對(duì)壓力與焦慮的有效心理調(diào)適方法試題及答案
- 知識(shí)產(chǎn)權(quán)教育的重要性試題及答案
- 知識(shí)點(diǎn)分層信息系統(tǒng)項(xiàng)目管理師試題及答案
- 學(xué)術(shù)研究支持服務(wù)試題及答案
- 系統(tǒng)規(guī)劃與管理師考試高分技巧分享試題及答案
- 安置幫教測(cè)試題及答案
- 紅山煤礦考試題及答案
- 層框架結(jié)構(gòu)設(shè)計(jì)計(jì)算書(全手算附圖)
- 電動(dòng)葫蘆出廠檢驗(yàn)報(bào)告
- 如何培養(yǎng)孩子的創(chuàng)造力與想象力
- 住院患者探視登記表
- 境外所得個(gè)稅新政解析PPT課件
- 工程網(wǎng)絡(luò)計(jì)劃技術(shù)概述
- 《不定期船營(yíng)運(yùn)管理模擬系統(tǒng)》實(shí)驗(yàn)指導(dǎo)書
- 華上集團(tuán)基本法講述
- s參數(shù)定義、矢量網(wǎng)絡(luò)分析儀基礎(chǔ)知識(shí)和s參數(shù)測(cè)量義講
- 重癥培訓(xùn)重癥監(jiān)測(cè)的基本原則和方法
評(píng)論
0/150
提交評(píng)論