第3单元线性数据结构(二)主讲刘志强.ppt

  1. 1、本文档共92页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3单元线性数据结构(二)主讲刘志强.ppt

LZQ@CEEC 思考问题 日常生活中诸如排队、只有一个出入口的站台这类线性表在计算机中如何存放和处理? 它们的特点与一般线性表有哪些异同?怎样在算法中体现出处理的差异来。 字符串和数组也是一种线性表,它们的处理与一般线性表的处理又有哪些异同? 教学目标 掌握栈、队列、数组、串结构的有关概念、逻辑结构、物理结构及有关操作。 教学主要内容 栈、队列、数组、串的: 有关概念 逻辑结构及特点 存储结构 有关操作 本章涉及内容 第1章的 1.3 栈和队列 (P32~P46) 1.4 串和数组 (P47~P55) 一、栈结构 栈的定义 栈的基本运算 栈的顺序存储结构 多栈共享问题 栈的链式存储结构 栈的应用 1、栈的定义 堆栈(Stack) 栈是允许在同一端进行插入和删除操作的特殊线性表。 允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动; 栈中元素个数为零时称为空栈。 栈结构也称为后进先出表(LIFO)。 栈有关概念 栈上溢 栈空间是有限的,若栈已满,在进行入栈操作时,就要产生上溢。 栈下溢 若栈空,再要执行出栈操作,则会发生下溢。 栈顶指针 在栈操作过程中,有一个专门的栈指针(习惯上称它为TOP),指出栈顶元素所在的位置。 栈空的条件: top = 0 栈满的条件: top = MAXSIZE 2、栈的基本运算 Setnull(Stack) 置栈为空; Empty(Stack) 判定栈是否为空; Push(Stack,x)进栈操作,在栈顶插入元素; Pop(Stack) 出栈操作,删除栈顶元素; Gettop(Stack) 取栈顶元素 3、栈的顺序存储结构 栈的顺序存储结构实际上是一维数组。 栈的顺序存储结构称为顺序栈。 栈的操作只能在一端进行;即栈顶位置随进栈和出栈而变化。 顺序栈的C语言描述为: #define MAXSIZE n int stack[MAXSIZE]; int top = -1; 栈操作举例 例1-10 有三个元素的进栈序列是1,2,3。写出可能的出栈序列。 算法1-8 进栈算法 算法步骤: step1 判别栈满否,若满,则显示栈溢出信息,停止执行;否则,执行step 2; Step2 栈顶指针top上移(加1); Step3 在top所指的位置插入元素x。 算法1-8 进栈算法程序 push(int x) { if(top = = MAXSIZE -1) { printf(“栈上溢!\n”); exit (1); } else { top + +;/* 栈指针加 1 */ stack [ top ] = x ;/* 元素 x进栈*/ } } 算法1-9 出栈算法 算法步骤: step1 判别栈是否为空;若空,则输出 栈下溢信息,并停止执行;否则, 执行step2; step2 弹出(删除)栈顶元素; step3 栈顶指针top下移(减1)。 算法1-9 出栈算法程序 pop( ) { int x; if( top = = -1) { printf(“ 栈下溢 \n”); exit(1); } else { x = stack [ top ]; top - - ;/* 栈顶指针 减1*/ } return x ; } 4、多栈共享问题 多栈共享是充分利用栈空间的一种策略。具体作法是: 对两栈共享情况来说,将两个栈底分别设在两端,两个栈顶指针top1和top2相对中间位置动态移动,两个栈之间的分界线是不定的。 5、栈的链式存储结构 由前面介绍的链表结构可知,链结构操作灵活。对栈结构也是一样的。 顺序栈最多可用于2个栈的共享,对于更多的栈就难于表达了。 对于最大空间需要量事先不知的情况,就不能使用顺序栈了。这时,就需要采用链栈。 链栈存储结构 链栈存储结构的C语言描述: struct snode { int data; struct s

您可能关注的文档

文档评论(0)

magui + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8140007116000003

1亿VIP精品文档

相关文档