什么是队列?
再举一个简单的例子
先到先得,是队列的准则
就算是校长来了也得在后面排着!!!!
小明是队头,小李是队尾,
不难想象,我们第一个放入的是小明,第二是小王,第三个是校长(小张),第四个是小李
我们拿数据的时候,第一个就是小明,小王,校长,小李
记得"先进先出“
实现一个队列?
实现过程相当简单,只需要基本的编程思路
1.链队
入队的时候,我们只需要把新的链表节点加到这个队末尾,出队的时候我们只需要把小明拿出去并切断锁链
这就是一个队列
2.顺序队
顺序队我们只需要在顺序表末尾去增删元素即可,符合顺序表的特性。
双向队列
这个概念类比于Stack,假如我们可以从两侧入队,从两侧出队
出分为头出,尾出,入分为头入,尾入
入就把节点关联到一侧,出就是从一侧切下一个节点
循环队列
循环队列本身应该是这样的圈,但是计算机它做不到…我们靠想象就可以
我们想像它是一条线
入队:每次入队的时候把元素放在rear指针处,然后rear向后移动
出队:每次出队,把front指针向前移动,然后取出这个位置的值
判空:rear和front相差1
判满:rear和front重合
这不是唯一的方式,条件随着你的实现而变
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统