>[success] # 队列 [消息队列](https://www.zhihu.com/question/34243607) ~~~ 1.队列的应用场景'循环队列、阻塞队列、并发队列' 2.队列就像我们排队买票,我们一般遵循来的人自动排到队尾,队伍开始的人买完票离开队伍, 因此我们可以得到一个结论'队列是一组有序的项,并遵循先进先出的原则(FIFO)',这种结构就叫'队列' ~~~ ![](https://img.kancloud.cn/1b/9e/1b9e8ed62c22d9527adaefe02c954bbb_235x121.png) >[info] ## 队列和栈的区别 ~~~ 1.队列遵循的是'先进先出原则,并且是从队尾进入,队头出去', 栈是遵循的是'先进后出原则,并且只能从栈顶插入,栈顶离开' ~~~ >[danger] ##### 什么时候使用队列 ~~~ 1.当某些数据需要按顺序执行,并且满足先进先出的特性, 我们就应该首选'队列'这种数据结构。 ~~~ >[danger] ##### 如何实现队列 ~~~ 1.首先需要满足'先进先出原则',因此最基本的操作也是两个:'入队 enqueue()',放一个数据到队列尾部; '出队 dequeue()',从队列头部取一个元素 2.可以采用数组和链表让其遵循'先进先出原则',封装成队列用数组实现的队列叫作'顺序队列',用链表实现的队列 叫作'链式队列'。 ~~~