数据结构&算法&栈&队列

本文详细介绍了栈和队列这两种基本的数据结构。栈是一种后进先出的线性集合,支持push和pop操作,时间复杂度为O(1)。队列是一种先入先出的线性结构,支持在队尾插入元素,在队头移除元素,时间复杂度同样为O(1)。此外,还讨论了它们的不同应用场景。
摘要由CSDN通过智能技术生成

是一种特殊的线性集合,对栈的操作都在栈顶【加入数据push,移除数据pop】并且是后进先出的【例如:网页的前进与后退】。

栈分类:实现结构可以是一维数组,链表;当为数组时则为顺序栈,当为链表时则为链式栈。

时间复杂度:假设栈中有n个元素

                访问指定位置时,时间复杂度为O(n)

                入栈和出栈的时间复杂度为O(1)

栈的常见应用场景:

浏览器的前进与后退

虚拟机栈:由栈帧组成,每个栈帧都拥有:局部变量表,操作数栈,动态链接,方法出口信息。

出栈的顺序:

3个元素A,B,C顺序出栈,出栈的情况可分为:

 队列:是一种线性结构【隧道里面的行驶车辆】先入先出。

队列的出口端叫做队头,则入口端叫做队尾,队列只允许在队头进行出队操作;在队尾进行入队操作。

队列的分类:单队列,循环队列。

时间复杂度:假设队列中有n个元素

                访问指定元素的时间复杂度O(n)

                插入删除元素的时间复杂度O(1)

数组实现的队列叫做顺序队列;链表实现的队列叫做链式队列。

使用循环队列可以避免假溢出。

队列的应用场景:

        KTV点歌列表

        阻塞队列

        线程池的任务队列

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值