队列是先进先出(FIFO) ,而栈为后进先出(LIFO)

队列和栈是两种不同的数据结构。它们有以下区别: (1)操作的名称不同。 队列的插入称为入队,队列的删除称为出队。栈的插入称为进栈,栈的删除称为出栈。 (2)操作的限定不同。 队列是在队尾入队,队头出队,即两边都可操作。而栈的进栈和出栈都是在栈顶进行的,无法对栈底直接进行操作。 (3)操作的规则不同。 队列是先进先出(FIFO),即队列的修改是依先进先出的原则进行的。新来的成员总是加入队尾(不能从中间插入),每次离开的成员总是队列头上(不允许中途离队)。而栈为后进先出(LIFO),即每次删除(出栈)的总是当前栈中最新的元素,即最后插入(进栈)的元素,而最先插入的被放在栈的底部,要到最后才能删除。 (4)遍历数据速度不同。 队列是基于地址指针进行遍历,而且可以从头部或者尾部进行遍历,但不能同时遍历,无需开辟空间,因为在遍历的过程中不影响数据结构,所以遍历速度要快。栈是只能从顶部取数据,也就是说最先进入栈底的,需要遍历整个栈才能取出来,而且在遍历数据的同时需要为数据开辟临时空间,保持数据在遍历前的一致性。

参考

https://www.huaweicloud.com/articles/13739155.html