『嗨威说』数据结构 - 第三章学习内容小结
本文内容: 本章内容小结 完成作业或实践时解决困难的经验分享 参考资料、说明推荐理由及列出相关链接(或书目名称,具体页码) 目前学习过程中存在的困难,待解决或待改进的问题 接下来的目标 一、本章内容小结:(栈与队列) (1)基本概念: 栈(Stack): 只允许在一端进行插入或删除操作的线性表。首先栈是一种线性表,但是限定这种线性表只能在某一端进行插入和删除操作 栈顶(top): 线性表允许进行插入和删除的那一端。(开口的那一端) 栈底(bottom): 固定的,不允许进行插入和删除的另一端。(封死的那一端) 空栈: 不含任何元素的空表。 栈的两种表示方式: 栈的本质是线性表,那么它就同样有线性表的两种表示形式:顺序栈 和 链式栈(简称“链栈”) 两者的区别:存储的数据元素在物理结构上是否是相互紧挨着的。顺序栈存储元素预先申请连续的存储单元;链栈需要即申请,数据元素不紧挨着。 栈的“上溢”和“下溢”问题: “上溢”:在栈已经存满数据元素的情况下,如果继续向栈内存入数据,栈存储就会出错。(栈满还存会“上溢”) “下溢”:在栈内为空的状态下,如果对栈继续进行取数据的操作,就会出错。(栈空再取会“下溢”) 对于栈的两种表示方式来说,顺序栈两种情况都有可能发生;而链栈由于“随时需要,随时申请空间”的存储结构,不会出现“上溢”的情况。 栈的基本操作: InitStack(&S)