上一次我们说到了栈(Stack),栈是一个后进先出,先进后出的线性表。而这次我们要说的队列(Queue),即是一个先进先出,后进后出的线性表,类似于两端都开口的盒子。
如图所示,队列只能末尾进队,头部出队,每次出队后,队头后面的元素集体前移,第二个元素重新充当队头。
对于队列这一线性表,我们可以通过顺序表的方式进行实现,如果通过顺序表的方式实现的话,那和我们之前写的顺序表其实大差不差。那么在这里我们用链表的方式来实现队列,后面有机会的话我再写一个用顺序表来实现队列。
如果用链表来实现队列的话,就和之后我们要写的单链表类似了,不过其实实现起来比单链表复杂,但是数据操作又比单链表简单。
首先我们将数据类型重定义,方便应用多种场景:
typedef int QDatatype;<