队列

新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问 QQ 号, 小哈当然不会直接告诉小哼啦,原因嘛你懂的。所以小哈给了小哼一串加密过的数字,同时 小哈也告诉了小哼解密规则。规则是这样的:首先将第 1 个数删除,紧接着将第 2 个数放到 这串数的末尾,再将第 3 个数删除并将第 4 个数放到这串数的末尾,再将第 5 个数删除...... 直到剩下最后一个数,将最后一个数也删除。按照刚才删除的顺序,把这些删除的数连在一 起就是小哈的 QQ 啦。现在你来帮帮小哼吧。小哈给小哼加密过的一串数是“6 3 1 7 5 8 9 2 4”。

#include <stdio.h>
int main()
{
	int q[102]={0,6,3,1,7,5,8,9,2,4},head,tail; 
	int i;
	//初始化队列
	head=1;
	tail=10; //队列中已经有9个元素了,tail指向队尾的后一个位置 
	while(head<tail) //当队列不为空的时候执行循环
	{
		//打印队首并将队首出队 
		printf("%d ",q[head]); 
		head++;

		//先将新队首的数添加到队尾 
		q[tail]=q[head]; 
		tail++;

		//再将队首出队
		head++; 
	}
		getchar();getchar();
		return 0; 
}
//结构体实现
#include <stdio.h>
int main()
{
	int q[102]={0,6,3,1,7,5,8,9,2,4},head,tail; 
	int i;
	//初始化队列
	head=1;
	tail=10; //队列中已经有9个元素了,tail指向队尾的后一个位置 
	while(head<tail) //当队列不为空的时候执行循环
	{
		//打印队首并将队首出队 
		printf("%d ",q[head]); 
		head++;

		//先将新队首的数添加到队尾 
		q[tail]=q[head]; 
		tail++;

		//再将队首出队
		head++; 
	}
		getchar();getchar();
		return 0; 
}
原文地址:https://www.cnblogs.com/fazero/p/4966746.html