算法导论例程——队列

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

#define LENGTH 1000
typedef 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;
	else
		q.tail++;
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值