| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 数据结构第三章——栈 -> 正文阅读 |
|
[数据结构与算法]数据结构第三章——栈 |
目录 一、栈的基本概念(一)栈的定义????????只允许在 一端进行插入或删除操作的线性表
? ? ? ? 栈的一个数学性质,n个不同元素进栈,出栈元素不同排序的个数为 (二)栈的基本操作
二、栈的顺序存储结构(一)顺序栈的实现
????????栈顶指针:S.top,也就是栈顶在数组中的位置,一般初始的时候设置为-1 ? ? ? ? 栈顶元素:S.data[S.top] ? ? ? ? 栈空条件:S.top == -1,栈满条件:S.top = =MaxSize -1 ? ? ? ? 还有一种情况是S.top初始化为0的情况,这种情况表示S.top指向栈顶元素的下一个位置? (二)顺序栈的基本运算1.初始化
2.判栈空
3.进栈
4.出栈
5.读栈顶元素
(三)共享栈?? ? ? ? 两个顺序栈共享一个一维数组,将两个栈的栈底分别设置在共享空间的两端,栈顶向共享空间中间延伸 ? ? ? ??进栈时先动指针再赋值,出栈时先取值再动指针 三、栈的链式存储结构(一)链栈的实现? ? ? ? 采用链式存储的栈称为链栈,优点是不存在栈满上溢的情况 ? ? ? ? 通常用单链表实现,并规定所有操作都是在单链表的表头进行的,这里规定链栈没有头结点,Lhead指向栈顶元素 ? ? ? ? ?栈的链式存储类型代码如下
?(二)链栈的基本操作? ? ? ? ?目前参照线性表的链式存储之后再继续完善 四、经典例题(一)选择题1.栈和队列具有相同的() ????????A.抽象数据类型? ? ? ? ? ? ? ? B.逻辑结构? ? ? ? ? ? ? ? C.存储结构? ? ? ? ? ? ? ? D.运算 ? ? ? ? 栈和队列同属于线性结构,也就是同一个逻辑结构 ? ? ? ? 该知识点来自于(可点击查看)→数据结构绪论 2.设链表不带头结点且所有操作均在表头进行,则下列最不适合作为链栈的是() ??A.只有表头节点指针,没有表尾结点指针?的双向循环链表 ? B.只有表尾结点指针,没有表头指针的双向循环链表 ? C.只有表头节点指针,没有表尾指针的单向循环链表 ? D.只有表尾结点指针,没有表头指针的单向循环链表 ? ? ? ? 循环链表,在有删除操作的情况下,都需要考虑一点,找删除节点的前驱节点并修改其指针。在表头进行删除操作,表尾结点是前驱节点,单向循环链表无法一步找到表尾结点,因此选C 3.采用共享栈的好处是() ? A.减少存取时间,降低发送上溢的可能 ? B.节省存储空间,降低发生上溢的可能 ? C.减少存取时间,降低发生下溢的可能 ? D.节省存储空间,降低发生下溢的可能 ? ? ? ? 节省存储空间这个不用说,栈只可能发生上溢,所以选B (二)应用题 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 1:47:56- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |