什么是队列
栈中元素只能栈顶出入,它是一种特殊的线性表,同样的,队列(Queue)也是一种特殊的线性表。
秉承先来后到的原则,队列中的元素只能从队尾进入,只能从队首出去,也就是说,入队顺序为1、2、3、4,那么出队顺序也一定是1、2、3、4,所以队列是一种先进先出(FIFO,First In, First Out)的数据结构。
顺序表队列
想要实现队列也是很简单的,也可以通过两种线性表来实现,我们先来看看使用顺序表如何实现队列,假设一开始的时候队列中有0个元素,队首和队尾一般都初始都是-1这个位置:
此时有新的元素入队了,队尾向后移动一格(+1),然后在所指向位置插入新的元素:
之后都
2026-02-271k 字5 分钟
栈的设计与实现
什么是栈
栈(Stack)是一种特殊的线性表,它只能在表尾进行插入和删除操作,就像下面这样:
我们一般只在一端进行插入和删除,依次插入1,2,3,4后,如果进行删除操作,将会是4,3,2,1的顺序进行删除:
底部称为栈底,顶部成为栈顶,所有操作只能在栈顶进行,先进后出,下面的元素想要进行操作需要让上面的元素先出去
接着我们要来讲下栈的两个操作:
pop:出栈操作,从栈顶取出一个元素。
push:入栈操作,向栈中压入一个新的元素。
我们先按照顺序表(也可以用链表)来编写:
123456789typedef int E;struct Stack { E * array;