chap3堆栈与队列

chap3堆栈与队列

ID:43305514

大小:1.99 MB

页数:117页

时间:2019-10-08

chap3堆栈与队列_第1页
chap3堆栈与队列_第2页
chap3堆栈与队列_第3页
chap3堆栈与队列_第4页
chap3堆栈与队列_第5页
资源描述:

《chap3堆栈与队列》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第三章栈和队列四类基本结构:1.线性结构2.树形结构3.图状结构4.集合1)线性表2)栈和队列3)串4)数组与广义表栈与队列的逻辑特征:从数据结构角度讲,栈与队列也是线性表,不同之处在于其操作的特殊性(栈为LIFO,队列为FIFO),为操作受限的线性表。从数据类型角度讲,栈与队列是与线性表不同的重要抽象数据类型,广泛的应用于各类软件系统中。3.1栈3.1.1栈的抽象类型定义3.1.2栈实现——顺序栈与链栈3.1.3栈的应用举例3.1.4栈与递归过程3.2队列3.2.1队列的类型定义3.2.2队列类型的实现3.2.3队列的应用举例3.1.1栈的抽象类型定

2、义栈顶(Top):允许进行插入、删除操作的一端栈底(Bottom):另一端,不允许插入、删除的一端空栈(StackEmpty):表中没有元素1.基本概念定义:作为一种限定性线性表,是将线性表的插入和删除运算限制为仅在表的一端进行。an...a2a1栈顶Top栈底Bottom栈s=(a1,a2,……,an)进栈:栈的插入操作,或称为入栈出栈:栈的删除操作,或称为退栈特点:后进先出(LIFO)LastInFirstOut1.基本概念an...a2a1栈顶Top栈底Bottom进栈出栈栈s=(a1,a2,……,an)元素入栈的顺序与出栈的顺序相反栈的抽象数据

3、类型定义ADTStack{数据对象:数据关系:基本操作:1.InitStack(&S)2.StackEmpty(S)3.Push(&S,x)4.Pop(&S,&x)5.GetTop(S,&x)}ADTStackR={

4、ai-1,ai∈D,i=2,3,...,n}约定an端为栈顶,a1端为栈底。D={ai

5、ai∈ElemSet,i=1,2,...,n,n≥0}…………了解各种操作的功能即可3.1.2栈的实现——顺序栈——链栈1.顺序栈#defineStack_Size初始分配量typedefstruct{StackElementType

6、elem[Stack_Size];inttop;}SeqStack;(最简单、最常用)为栈分配一个足够大的容量。顺序栈toptoptoptoptoptopDABCE①顺序栈的初始化②顺序栈的判断栈是否为空③顺序栈的判断栈是否为满④顺序栈的入栈⑤顺序栈的出栈⑥顺序栈的取栈顶元素2.顺序栈的基本操作:voidInitStack(SeqStack*S){S->top=-1;}3.顺序栈的基本操作——初始化函数空栈top#defineStack_Size50typedefstruct{StackElementTypeelem[Stack_Size];intto

7、p;}SeqStack;intIsEmpty(SeqStackS){if(S.top==-1)returnTRUE;elsereturnFALSE;}3.顺序栈的基本操作——判断栈是否为空栈空top#defineStack_Size50typedefstruct{StackElementTypeelem[Stack_Size];inttop;}SeqStack;intIsFull(SeqStackS){if(S.top==StackSize-1)returnTRUE;elsereturnFALSE;}3.顺序栈的基本操作——判断栈是否为满栈满topDA

8、BCE#defineStack_Size50typedefstruct{StackElementTypeelem[Stack_Size];inttop;}SeqStack;intPush(SeqStack*S,ElemTypex){if(S->top==Stack_Size-1)returnFALSE;S->top++;S->elem[S->top]=x;returnTRUE;}3.顺序栈的基本操作——入栈入栈toptoptoptoptoptopDABCE#defineStack_Size50typedefstruct{StackElementType

9、elem[Stack_Size];inttop;}SeqStack;intPop(SeqStack*S,ElemType*x){if(S->top==-1)returnFALSE;*x=S->elem[S->top];S->top--;returnTRUE;}3.顺序栈的基本操作——出栈问题:栈顶top要修改吗?要修改,栈发生变化!!出栈toptoptoptoptoptopDABCE#defineStack_Size50typedefstruct{StackElementTypeelem[Stack_Size];inttop;}SeqStack;3.顺

10、序栈的基本操作——取栈顶元素问题:栈顶top要修改吗?不要修改,栈没有变化!!取元素DABCE

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

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

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