数据结构与算法三:栈和队列

一、栈和队列的特性:
受限的数据结构
队列(Queue):先进先出 FIFO 【优先队列可以插队】
栈(Stack):后进先出 LIFO【系统的ctrl+z就是维护了一个栈stack】
在这里插入图片描述
二、栈:
1.栈的定义:
在这里插入图片描述2.栈的操作:
将数组或链表进行约束就行了
在这里插入图片描述3.栈的应用:
题目一:LeeCode第20题

在这里插入图片描述成功:遇到左括号入栈,遇到右括号就与栈顶匹配,匹配都成功,且最终栈里无数据,成功。
失败:匹配不成功直接失败,如都匹配完后,栈里有剩余数据,则也失败。

java版:
在这里插入图片描述

三、队列:
1.队列的定义:
在这里插入图片描述
2.队列的操作:
在这里插入图片描述3.循环队列:
循环队列的底层依然是数组,只不过增加了指针头front和尾的指针tail;当tail == capacity时,再添加数据需要判断0位置是否为null,如果为null,则tail指向0位置。(tail+1)%capacity==front时,判断队列已经满,需扩容。
优点:出队删除的时候,不必频繁的移动数据。
在这里插入图片描述
4.ArrayQueue与LoopQueue的时间复杂度对比:
在这里插入图片描述

数据结构与算法更多相关内容【持续更新中】:

  • 【数据结构与算法一:时间频度和时间复杂度】: 传送门.
  • 【数据结构与算法二:数组】: 传送门.
  • 【数据结构与算法三:栈和队列】: 传送门.
  • 【数据结构与算法四:链表】: 传送门.
  • 【数据结构与算法五:哈希表-哈希函数设计原则-哈希冲突解决方案】: 传送门.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值