队列结构:尾部插入,前端删除
如下图所示,队列底层数据结构可以使用链表或者数组。在使用链表的时候,如下图左边部分所示,用front和rear两个指针分别指向队列的前端和后端。在使用数组的时候,分别用2个整数front和rear做数组的下标,指向数组的前端和尾端。
需要注意的是,如果用数组作为队列的底层结构,那么在不断的插入元素和删除元素的时候,数组的内存空间将会不断的向上滑动(如下图中间部分所示),这在实际应用过程中肯定是不好的,因此假如数组的长度为MAX,通过用rear=(rear+1)%MAX和front=(front+1)%MAX来移动数组的前端和尾端,可以限制它们在数组的当前空间,这样就构成了一个循环队列(如下图右边部分所示)。