算法导论例程——队列

来源:互联网 发布:2000坐标系数据转换 编辑:程序博客网 时间:2024/06/05 15:43

队列是一种delete的方式同栈不同的数据结构,遵循先进先出原则,因此对于队列我们需要它的head和tail两个属性来描述入队和出队。队列的结构如下

#define LENGTH 1000typedef struct{int num[LENGTH];int head;int tail;}queue;
这里把队列的长度宏定义了具体的数值,在实际应用时可以使用sizeof来获取,或以动态内存分配的方式来申请队列空间。

下面来看队列的两个操作:

void enqueue(queue q, int x){q.num[q.tail] = x;if (q.tail == LENGTH)q.tail = 0;elseq.tail++;}int dequeue(queue q){int x = q.num[q.head];if (q.head == LENGTH)q.head = 0;elseq.head++;return x;}
当队列中的元素全部出队时,我们令head = 0让队列对数据的获取”重新开始“。

0 0
原创粉丝点击