數(shù)據(jù)結(jié)構(gòu)算法描述總結(jié)與歸納棧和隊(duì)列_第1頁
數(shù)據(jù)結(jié)構(gòu)算法描述總結(jié)與歸納棧和隊(duì)列_第2頁
數(shù)據(jù)結(jié)構(gòu)算法描述總結(jié)與歸納棧和隊(duì)列_第3頁
數(shù)據(jù)結(jié)構(gòu)算法描述總結(jié)與歸納棧和隊(duì)列_第4頁
數(shù)據(jù)結(jié)構(gòu)算法描述總結(jié)與歸納棧和隊(duì)列_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第三章棧和隊(duì)列棧和隊(duì)列是兩種重要的線性結(jié)構(gòu)。棧和隊(duì)列也是線性表,特殊性在于棧和隊(duì)列關(guān)鏈詞:棧stack棧頂topbotton后進(jìn)先出lastinfirst ADTstackDestroyStack(&s)StackEmpty(s)Stack}ADT3.1.2typedefSelemType*bads;//棧底指針 //ADT//棧的順序表#define #define typedefstruct{SelemType*base; StatusInitStack(SqStack&s);StatusDestroyStack(SqStack&s);StatusClearStack(SqStack&s);StatusStackEmpty(SqStackS);IntStackLength(SqStackS);StatusGetTop(SqStacks,SelemType&e);StatusPush(SqStack&s,SelemTypee);StatusPop(SqStack&s,SelemType&e);//StatusInitStack(SqStack//構(gòu)造一個空棧returnok;StatusGETop(SqStacks,selemType//E返回SOKERRORif(s.top==s.base)returnError;returnok;StatusPush(SqStack&s,SelemType//插入元素E if(!s.base) }returnOK;StatusPop(SqStack&s,SelemType&e){If(s.top==s.base)returnERROr;Return3.2.1}while(!StackEmpty(s)){}}//corion行編輯程序voidLine{//利用字符棧SWhileCase’@’:ClearStack(s);break;Default:Push(s,ch);break;}}}If(ch!=EoF)}3.2.4typedef PosType StatusMazePath(MazeTypemaze,PosTypeStart,PosTypeend){InitStack(s);Curpos=start;{FootPrint(curpos);elsecurpos=NextPos(e.seate.di);}while(!StackEmpty(s));3.2.5為實(shí)現(xiàn)算符優(yōu)先算法,可以使用兩個工作棧。一個稱OPTR,用以寄存運(yùn)算符,另一個稱做OPND,用以寄存操作數(shù)和運(yùn)算結(jié)果。首先置操作數(shù)棧為空棧,表達(dá)式起始符#OPND棧,若是運(yùn)算符則和OPTR棧的棧頂運(yùn)算符比較優(yōu)先權(quán)后作相就操作。{initStack(Opnd);c=getchar;if(!In(c,op)){Push((Opnd,c);c=getchar();)case‘<’ case casePop(opnd,b);pop(opnd,a);returnVoidnanoi(intn,charx,chary,char{hanoi(n-}}ADTQueue{}//ADT鏈隊(duì)列——隊(duì)列鏈?zhǔn)奖硎?/==ADTQueuetypedefstruct StructQnode }Qnode,*Queueptr;typedefstruct{ //基本操作函數(shù)說明StausInitQueue(LinkQueueStaursDesroyQueue(LinkQueue&q)StaursclearQueue(LinkQueue&q)StaursQueueempty(LinkQueue&q)IntQueueLength(LinkQueue&q)StatusEnQueue(LinkQueue Q,QelemTypee)StatusDeQueue(LinkQueue&Q,QelemType&e)StatusQueueTraverse(LinkQueueQ,Visit())statusInitQueue(LinkQueue{// }statusDestroyQueue(LinkQueue//}return}status &q,Eelemtype//插入元素E為Q的新的隊(duì)尾元素 return}statusDeQueue(LinkQueue&Q,QelemType&e){if(q.front==Q.rear)returnError;Return}循環(huán)隊(duì)列-#defineMAXQSIZEtypedefstruct{ InitQueue *)malloc(MAXQSIZE returnok;}intQueueLength(SqQueueStatusEnQueue(sqqueue &q,QelemTypee){ returnerror;returnok;}StatusDeQueue(sq(Queue&q,QelemType&e)If(q.front==q.rear)returnError; }離 模擬算法3.6銀行客戶的離散驅(qū)動模擬程序voidBank_Simulation(intCloseCase‘a(chǎn)’:CustomerARRived(); Case‘D’:customerDeparture(); intOccurTime;intNtype;}Enent,typedefLinkList EnentListev; QelemTypecustomer; cmp(Eventa,Eventb);TotalTime=0;CustomerNum=0;En.OccurTime=0;en.

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論