3.1.4 栈_选择一刷改错

T1: 栈和队列具有相同的(逻辑结构)

解: review一下:

def_抽象数据类型: 抽象数据组织及与之相关的操作, 即其包括{数据对象, 数据关系, 基本操作集}, 用于描述数据的逻辑结构和抽象运算(并列定义: 原子类型(int), 结构类型(struct)), 由于二者运算不同, 故抽象数据类型也不同

逻辑结构分类: 线性结构 or 非线性结构, 在做题的区分中, 只作线性 or 非线性的区分, 栈和队列都属于分支中: 线性结构->一般线性表

存储结构上, 二者都可以顺序存储链式存储

二者的不同体现在数据的运算不同, 二者的存取操作不同, 栈LIFO, 队列FIFO


T7: 题目指所有操作, 则删除操作是最复杂的, 因而也就是最应该考虑的操作

删除操作不仅仅要知道当前的结点, 还要知道 指向它的所有节点, 插入操作只需要指导当前结点即可

因此, 对于双向循环链表, 已知表头/尾, 找表尾/头的很简单, 整体时间复杂度为O(1), 对于单向循环链表, 知道表头要找表尾, 必须遍历整个链表, 时间复杂度为O(n), 而知道表尾找表头是O(1), 故选择有表头的单循环


T20: 栈的存取时间复杂度都是O(1), 与栈的空间大小和栈内已有多少元素无关, AC排除

在数据结构中, 正数越界称上溢, 负数越界称下溢 (对一个-+1024的界限, 存+10000:上溢, 存-10000:下溢)

上述概念在OS中不同

对栈而言, 栈的存储空间是0~预设上限(顺序存储结构), 因此只能发生超出预设上限, 即只能发生上溢, 不可能发生下溢

对表理解为(满了还存->上溢 空了还取->下溢)

对于 节省存储空间, 降低发生上溢的 可能的理解:

在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Autumn_begins

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值