计算机软件技术基础 课件.ppt
《计算机软件技术基础 课件.ppt》由会员分享,可在线阅读,更多相关《计算机软件技术基础 课件.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机软件技术基础,教 师:曾晓东电 话:13679007201E_mail: ,3.4 栈,一、栈的定义二、栈的运算三、栈的存储结构及算法四、栈的应用,计算机软件技术基础,数据结构栈和队列,一、栈的定义,栈是限定只能在表的一端进行插入和删除操作的线性表。允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom)。设栈s=(a1,a2,.,an),a1称为栈底元素,an称为栈顶元素。栈中元素按a1,a2,.,an次序进栈,又按an,.,a2,a1次序退栈。因此栈的操作特点是:后进先出(LIFO);n=0时称为空栈。,计算机软件技术基础,数据结构栈和队列,二、栈的运算,1.初始化栈I
2、NISTACK(S)将栈S置成空栈2.判空栈ISEMPTY(S)若栈S是空栈,返回“真”,否则返回“假”3.进栈PUSH(S,x) 在栈S顶部插入(压入)元素x4.出栈POP(S) 若栈S不空,删除顶部元素5.取栈顶GETTOP(S)取栈顶元素,并不改变栈中内容,计算机软件技术基础,数据结构栈和队列,三、栈的存储结构及算法,1.顺序栈1)类型定义顺序栈用向量作为栈的存储结构,可用一维数组s1:m表示。其中m表示栈的最大容量。用一个简单变量top来指示栈顶位置,称为栈顶指示器。top=0表示栈空,top=m表示栈满。类型定义struct SeqStackelemtype stackMAXSIZE
3、;int top;,计算机软件技术基础,数据结构栈和队列,三、栈的存储结构及算法,2)顺序栈初始化 操作:建一空栈,将栈顶位设置为-1 接口:入口和出口参数均为堆栈指针s 算法描述:令栈顶位 s.top为-1 函数实现:void iniStack(SeqStack ,计算机软件技术基础,数据结构栈和队列,三、栈的存储结构及算法,3)进栈算法 操作:先将栈顶位置加一将数据放入栈顶位置 接口: 入口参数:堆栈指针s,新数据元素x出口参数: 堆栈指针s函数值:成功则返回 1 ( 用true表示), 失败则返回 0 ( 用false表示),计算机软件技术基础,数据结构栈和队列,三、栈的存储结构及算法,
4、(3)算法描述,计算机软件技术基础,数据结构栈和队列,三、栈的存储结构及算法,(4) 函数实现int push(SeqStack ,计算机软件技术基础,数据结构栈和队列,三、栈的存储结构及算法,4)出栈算法(1) 操作取栈顶位置内数据.再将栈顶位置减一(2) 接口 入口参数:堆栈指针s出口参数: 堆栈指针s函数值: 成功则返回数据元素x, 失败则返回NULL,计算机软件技术基础,数据结构栈和队列,三、栈的存储结构及算法,(3) 算法描述,计算机软件技术基础,数据结构栈和队列,三、栈的存储结构及算法,(4) 函数实现elemtype pop(SeqStack ,计算机软件技术基础,数据结构栈和队
5、列,三、栈的存储结构及算法,5)双栈操作顺序栈的缺点:栈满后不能进行进栈操作,否则将产生“上溢”错误同时使用同类的两个栈,充分利用剩余空间两栈共用一个存储空间,分别从两端向中间增长,计算机软件技术基础,数据结构栈和队列,三、栈的存储结构及算法,2.链栈链栈是用链表作为栈的存储结构,top为栈顶指针,指示栈顶元素位置,若top=NULL,则表示栈空。链栈一般不会出现上溢,除非内存中已不存在可用空间。使用单链表,不设头结点插入和删除仅在表头一端 栈顶top :指始结点,浮动空栈用 top=NULL 实现 链栈结点动态分配,空间无限链栈定义与单链表相同 struct link *top;,.,计算机
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 软件技术 基础 课件
限制150内