[工学]数据结构course05stackandqueue前序和后序表达式

[工学]数据结构course05stackandqueue前序和后序表达式

ID:39963330

大小:3.74 MB

页数:112页

时间:2019-07-16

[工学]数据结构course05stackandqueue前序和后序表达式_第1页
[工学]数据结构course05stackandqueue前序和后序表达式_第2页
[工学]数据结构course05stackandqueue前序和后序表达式_第3页
[工学]数据结构course05stackandqueue前序和后序表达式_第4页
[工学]数据结构course05stackandqueue前序和后序表达式_第5页
资源描述:

《[工学]数据结构course05stackandqueue前序和后序表达式》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、資料結構(DataStructures)Course5:StackandQueue▓Outlines本章重點Stack的定義、應用、製作與ADTQueue的定義、應用、製作與ADTInfix(中序)運算式與Postfix(後序),Prefix(前序)運算式間之相互轉換Postfix與Prefix的計算(Evaluation)StackPermutation2Astackisalinearlistinwhichalladditionsanddeletionsarerestrictedtooneend.Ifyouinsertedadataseriesintoastackandthenremoved

2、ittheorderofthedatawouldbereversed(反轉).Thisreversingattributeiswhystacksareknownasthelastin-firstout(LIFO)datastructure.3▓StackDef:具有LIFO(lastin-firstout)或FILO(firstin-lastout)性質的有序串列。插入元素的動作稱為Push,刪除元素的動作稱為Pop.Push/Pop的動作皆發生在同一端,此端稱為Top.4▓Stack之ADTDataObjectSpec.AsetofdataitemTop:指出目前頂端元素所在Size:表St

3、ack的大小OperationSpec.Create(S)S建立一個空的StackS,傳回值為一個新的StackSPush(S,item)S將資料item插入到StackS中,並成為Top端元素IfStackfull,則無法執行Pop(S)item,S刪除StackS的Top端元素IfStackempty,則無法執行5Top(S)item傳回StackS之Top端元素值,但不刪除IfStackempty,則無法執行此運作即為課本p.158所提到之“StackTop”IsFull(S)Boolean判斷S是否為full若是,則傳回True;否則傳回FalseIsEmpty(S)Boo

4、lean判斷S是否為empty若是,則傳回True;否則傳回False6※練習範例1※Pop(Push(S,item))=STop(Push(S,item))=itemIsEmpty(Create(S))=TruePop(Create(s))=Error(無法執行,∵是空的Stack)IsEmpty(Push(S,i))=False7※練習範例2※有一空的Stack,實施下列動作:PushgreenandbluePopbluePushredStacktopredPopredPopgreen則Stack的內容為何?89有兩個方式:用LinkedList用Array當然,我們也可以用Stack實作

5、出Queue,或用Queue實作出Stack,但這是另一層次的問題了!!▓Stack之製作ADTStackQueueTreeGraph怎麼實作?ArrayLinkedList較基礎的D.S.(層次較低)應用於ApplicationProgram10▓用LinkedList製作StackToimplementthelinkedliststack,weneedtwodifferentstructuresHeadDataNode11HeadAtoppointerAcountofthenumberofelementsinthestack.DataNodeInadditiontothedata,itc

6、ontainsanextpointertootherdatanodes.12Create(S)主要作法:宣告top指標為null即可:top=null(初值);課本作法:Initializesmetadataforastack.Pre:stackisstructureformetadataPost:metadatainitializedAlgorithmcreateStack(refstack)stack.count=0stack.top=nullreturnendcreateStack13Push(S,item)niltoppNewitemtopniltoppNew

7、itemtop推入非空堆疊推入空堆疊14主要作法:beginNew(t);//跟系統要求記憶體空間以產生並置放一個新節點pNewpNewdata=item;//把資料“item”塞到這個新節點pNew的Data欄位中pNewlink=top;top=pNew;end特點:只要Memory有空間,O.S.就允許LinkedStack去Push新資料!!不用像Array一樣,要先檢查Ar

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。