- 1、本文档共92页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- 江门市蓬江区科学与技术发展.doc
- 河北省2012年中小学幼儿园教师全员远程培训高二美术学科简.ppt
- 河北省衡水中学2017届高三上学期期末考试文综.doc
- 河南师范大学优势特色学科.doc
- 河南省推进服务业供给侧结构性改革.doc
- 河南省焦作市教师职业道德全员培训.ppt
- 河南科技大学实验教学示范中心.doc
- 河口段河道治理工程(0+000~18+000)勘测设计项目.doc
- 泉港区初中2016年秋季期末检测八年级物理学科质量分析.doc
- 法学院固本浚源、党员砥砺工程实施方案.doc
- 北师大版(2024)八年级数学上册课件 3.2 平面直角坐标系 第2课时 点的坐标特征.pptx
- 北师大版(2024)八年级数学上册课件 3.2 平面直角坐标系 第3课时 建立适当的平面直角坐标系.pptx
- 北师大版(2024)八年级数学上册课件 4.3 一次函数的图象 第1课时 正比例函数的图象及性质.pptx
- (人教A版数学选择性必修三)讲义第15讲7.1.1条件概率(学生版+解析).docx
- (人教A版数学选择性必修三)讲义第19讲8.1成对数据的统计相关性(8.1.1变量的相关关系+8.1.2样本相关系数)(学生版+解析).docx
- 北师大版(2024)八年级数学上册课件 5.2 二元一次方程组的解法 第2课时 加减消元法.pptx
- (人教A版数学选择性必修一)2025年秋季学期讲义第01讲1.1.1空间向量及其线性运算(学生版+教师版).docx
- 北师大版(2024)八年级数学上册课件 5.2 二元一次方程组的解法 第1课时 代入消元法.pptx
- 北师大版(2024)八年级数学上册课件 5.3 二元一次方程组的应用 第3课时 二元一次方程组的应用(3).pptx
- 北师大版(2024)八年级数学上册课件 5.4 二元一次方程与一次函数 第2课时 用二元一次方程组确定一次函数表达式.pptx
最近下载
- 黑龙江省齐齐哈尔市克东县克东一中、克山一中等五校联考2025年高三5月仿真考试数学试题含解析.doc VIP
- 新编机关事业单位工人汽车驾驶员高技师国家题库练习题题附答案.docx VIP
- 黑龙江省齐齐哈尔市克东县第一中学2025届高三下学期第五次模拟测试数学试题(含答案解析).docx
- 2025年福建省中考语文试卷(含答案).docx
- 新编机关事业单位工人汽车驾驶员高级、技师国家题库练习题455题(附答案)名师资料..doc VIP
- T_BPMA 0010—2021_现制现售净水机卫生管理规范.pdf VIP
- 复合益生菌发酵玉米-豆粕型日粮对哺乳期羔羊瘤胃发酵参数及菌群结构的影响.pdf VIP
- 野百合也有春天,日本女白领情定宁夏送电工.doc VIP
- 浅谈对智能化医院系统建设见解.doc VIP
- FSSC220006.0 附件中文版本.pdf VIP
文档评论(0)