版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
在此幻燈片插入公司的徽標(biāo)從“插入”菜單選擇圖片找到徽標(biāo)文件單擊“確定”重新設(shè)置徽標(biāo)大小單擊徽標(biāo)內(nèi)任意位置?;諛?biāo)外部出現(xiàn)的方框是“調(diào)整控點(diǎn)”使用這些重新設(shè)置對(duì)象大小如果在使用尺寸調(diào)整控點(diǎn)前按下shift鍵,則對(duì)象改變大小但維持原比例。DATA1065865姓名學(xué)號(hào)成績班級(jí)李紅976105995機(jī)97.6ABCDEFG數(shù)據(jù)結(jié)構(gòu)dlmu21.什么是線性結(jié)構(gòu)?簡單地說,線性結(jié)構(gòu)是一個(gè)數(shù)據(jù)元素的序列。2.棧和隊(duì)列:特殊的線性表2.3棧和隊(duì)列dlmu32.3.1棧2.3.1.1棧的定義棧:限定只能在表的一端進(jìn)行插入和刪除的特殊的線性表
(FILO)。a1a2….an進(jìn)棧出棧
棧頂
棧底設(shè)棧s=(a1,a2,...,ai,...,an),其中a1是棧底元素,棧頂(top):允許插入和刪除的一端;棧底(bottom):不允許插入和刪除的一端。dlmu4棧的基本操作1、初始化2、進(jìn)棧3、退棧4、取棧頂元素5、判棧是否非空dlmu52.3.1.2棧的存儲(chǔ)結(jié)構(gòu)——順序棧、鏈棧topstacksizea2a1指示當(dāng)前棧頂?shù)奈恢胐lmu6用圖表示順序棧如下:
圖中的順序棧的最大容量當(dāng)前棧中元素個(gè)數(shù)棧頂指針總是指在棧頂元素的后面一個(gè)位置上。
dlmu7S[4]2310
10S[4]2310
30
25
10S[4]2310
40
30
25
10S[4]2310top=4toptop=0s[top]=xtop=top+1toptop=stacksizetopdlmu8·進(jìn)棧算法#definestacksize100intpush(ints[],intx,int
*ptop){ inttop;
top=*ptop;
if(top==stacksize){printf("overflow");return(0);} else{
s[top]=x;
*ptop=++top; return(1); }}a2a3a4987654321a10topvoidmain(){ ints[100]={4}; inttop=1,result,i;
result=push(s,101,&top); if(result==1){printf("success!\n");printf("top=%d\n",top);} elseprintf("failure\n");
for(i=0;s[i]!='\0';i++) printf("%d",s[i]);}*ptop=top++;*ptop=top;top=top+1;S[top]=x;top=top+1;dlmu9退棧算法:intpop(ints[],int*ptop,int*py){ inttop; top=*ptop; if(top==0){printf("stackempty");return(0);} else{
--top; *py=s[top]; *ptop=top; return(1); }}a2a3a4987654321a10topvoidmain(){ staticints[20]={10,20,30}; inttop=3,result,y;
result=pop(s,&top,&y); if(result==1) {printf("success!\n"); printf("top=%d,y=%d",top,y);} elseprintf("failure");}溢出問題dlmu10x
∧S
進(jìn)棧算法
出棧算法用指針來實(shí)現(xiàn)的棧叫鏈棧。棧的容量事先不能估計(jì)時(shí)采用的存儲(chǔ)結(jié)構(gòu)。鏈棧的類型說明如下:typedefstructlnode{LElemTypedata;Structlnode
next;}lnode;(2)鏈棧dlmu11e∧SP進(jìn)棧算法VoidStatusPush(lnode*s,LElemTypee){p=(lnode*)malloc(sizeof(lnode));
p->data=e;p->next=s;s=p;}Sdlmu12x
S·出棧算法VoidStatusPop(lnode*s,LElemType*e){
if(s!=NULL){*e=s->data;s=s->next;}}sdlmu132.3.1.3棧的應(yīng)用(1)
過程的嵌套r主程序srrrs子過程1rst子過程2rst子過程3dlmu14例:voidprint(intw)for(i=1;i<=w;i++){inti;if(w!=0){print(w-1);printf(“%3d”,w);printf(“\n”);
}}
(2)
遞歸算法:
1(n=0,1)n!=n(n-1)!(n>1)dlmu15遞歸調(diào)用執(zhí)行情況如下:主程序(1)print(w);w=3;3print(2);(1)w=3top(2)輸出:3,3,3w2print(1);(2)w=2(1)w=3top(3)輸出:2,2w1print(0);(3)w=1(2)w=2(1)w=3top(4)輸出:1w0(4)w=0(3)w=1(2)w=2(1)w=3topw(3)輸出:2,2(2)2(1)3top(4)輸出:1(3)1(2)2(1)3top(2)輸出:3,3,3(1)3top返回(3)1(2)2(1)3top(4)0結(jié)束(1)dlmu162.3.2隊(duì)列(一種特殊的線性結(jié)構(gòu),限定在一端插入,一端刪除)2.3.2.1隊(duì)列的定義與運(yùn)算
a1,
a2,
a3,
a4,…………
an-1,
an
隊(duì)列示意圖隊(duì)頭隊(duì)尾先進(jìn)先出FIFO隊(duì)列的主要運(yùn)算(1)設(shè)置一個(gè)空隊(duì)列;(2)插入一個(gè)新的隊(duì)尾元素,稱為進(jìn)隊(duì);(3)刪除隊(duì)頭元素,稱為出隊(duì);(4)讀取隊(duì)頭元素;dlmu172.3.2.2隊(duì)列的存儲(chǔ)結(jié)構(gòu)(1)順序存儲(chǔ)結(jié)構(gòu)(a)線性隊(duì)列e4e3
e3e2e1
3210(a)(b)(c)rear=front=-1(初始化)rearfrontrear+1=MAX(隊(duì)滿)frontrearrear=front(隊(duì)空)front=reardlmu18(b)循環(huán)隊(duì)列
rearfront
0123(3)隊(duì)空
front(1)一般情況rear
0123e4e3
(2)隊(duì)滿fronte3
e43012reare5隊(duì)滿條件:(rear+1)%MAX=frontrear=front(隊(duì)空)dlmu19循環(huán)隊(duì)列中加入一個(gè)元素的算法:intenqueue(intq[],intx,int*pf,*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);}}dlmu20循環(huán)隊(duì)列中刪除一個(gè)元素的算法:intdequeue(intq[],int*py,int*pf,*pr){intfront,rear;front=*pf;rear=*pr;
if((rear==front)return(0);else{front=(front+1)%MAX;
*py=q[front];
*pf=front;return(1);}}
dlmu21鏈隊(duì)列的類型定義:
typedefstructQnode{QElemTypedata;StructQnode
next;}Qnode,
QueuePtr;typedefstruct{
QueuePtrfront;//隊(duì)頭指針
QueuePtrrear;//隊(duì)尾指針
}LinkQueue;ana2a1
Q.frontQ.rear鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)dlmu22an^a2a1
Q.frontQ.reara1a2
e
^anQ.frontan^a2a1
Q.frontQ.rear
刪除
一個(gè)元素
添加一個(gè)元素Q.rearQ.reardlmu23鏈?zhǔn)疥?duì)列插入算法:(在隊(duì)尾加入)
voidEnQueue(LinkQueue&Q,QElemTypee){
p=(QueuePtr)malloc(sizeof(Qnode));
if(!p)printf(“ERROR”);
else{
p->data=e;
p->next=NULL;
Q.rear->next=p;Q.rear=p;
}}dlmu24刪除一個(gè)元
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 烏魯木齊銀行2025年秋季招聘?jìng)淇碱}庫及一套答案詳解
- 2025-2030中國線性α-烯烴行業(yè)供需現(xiàn)狀及投資可行性專項(xiàng)調(diào)研研究報(bào)告
- 2026年首都醫(yī)科大學(xué)國家醫(yī)療保障研究院人員招聘?jìng)淇碱}庫完整參考答案詳解
- 機(jī)關(guān)干部職工培訓(xùn)課件
- 2025至2030中國汽車零部件產(chǎn)業(yè)發(fā)展現(xiàn)狀及未來趨勢(shì)研究報(bào)告
- 2025至2030中國光伏發(fā)電產(chǎn)業(yè)鏈成本效益與政策導(dǎo)向深度分析報(bào)告
- 老年人住院護(hù)理中的患者安全
- 2026年武漢市公安局蔡甸區(qū)分局招聘警務(wù)輔助人員43人備考題庫帶答案詳解
- 2026年長沙市天心區(qū)教育局白沙幼教麗發(fā)新城幼兒園教職工招聘?jìng)淇碱}庫完整參考答案詳解
- 2026年西昌市黃聯(lián)關(guān)鎮(zhèn)人民政府公開招聘9名綜合應(yīng)急救援隊(duì)伍人員備考題庫及答案詳解1套
- 【八年級(jí)下冊(cè)數(shù)學(xué)北師大版】第三章 圖形的平移與旋轉(zhuǎn)(9類壓軸題專練)
- 中建項(xiàng)目安全總監(jiān)競(jìng)聘
- 中建給排水施工方案EPC項(xiàng)目
- 公司股權(quán)分配方案模板
- 電氣工程及自動(dòng)化基于PLC的皮帶集中控制系統(tǒng)設(shè)計(jì)
- 舊設(shè)備拆除方案
- 醫(yī)學(xué)教材 常見輸液反應(yīng)的處理(急性肺水腫)
- FURUNO 電子海圖 完整題庫
- 急診科護(hù)士長述職報(bào)告
- 分子對(duì)稱性和點(diǎn)群
- 物業(yè)前臺(tái)崗位職責(zé)6篇
評(píng)論
0/150
提交評(píng)論