链队列:http://stdcpp.cn/downloads/src_code/c/normal/LinkQueue.rar
顺序队列:http://stdcpp.cn/downloads/src_code/c/normal/SqQueue.rar
以下文章出自《清华大学网络课程 —— 数据结构》
队列(Queue)是限定只能在表的一端进行插入和在另一端进行删除操作的线性表。在表中,允许插入的一端称作"队列尾(tail)",允许删除的另一端称作"队列头(front)"。

一、链队列
链队列是队列的链式存储结构,其结构示意图如下所示:

二、循环队列
和顺序栈相类似,在利用顺序分配存储结构实现队列时,除了用一维数组描述队列中数据元素的存储区域之外,尚需设立两个指针 front 和 rear 分别指示"队头"和"队尾"的位置。为了叙述方便,在此约定:初始化建空队列时,令 front=rear=0,每当插入一个新的队尾元素后,头指针 front 增1;每当删除一个队头元素之后,尾指针增1。因此,在非空队列中,头指针始终指向队头元素,而尾指针指向队尾元素的"下一个"位置。如下图所示。

假设在这之后又有两个元素 f 和 g 相继入队列,而队列中的元素 b 和 c 又相继出队列。则队头指针指向元素 d,队尾指针则指到数组"之外"的位置上去了,致使下一个入队操作无法进行(请注意此时队列空间并未满)。为此,设想这个数组的存储空间是个"环",认定"7"的下一个位置是"0"。如下图所示。
本文乃网上搜集得来,其版权归原作者和原出处所有。如有侵犯版权之处请与我联系,我将马上进行处理。