队列是一种特殊的线性结构。它只允许在队列的首部(head)进行删除操作,称为“出队”,而在队列的尾部(tail)进行插入操作,称为“入队”。当队列中没有元素时(即head==tail),称为空队列。
在我们的日常生活中,有很多情况都符合队列的特性。比如买票,每个排队买票的窗口就是一个队列。在这个队列当中,新来的人总是站在队列的最后面,来得越早的人越靠前,也就越早能买到票,就是先来的人先服务,我们称为“先进先出”(FirstIn First Out,FIFO)原则。
#include <stdio.h>
using namespace std;
int main()
{
/*
题目:小明想要小娜的QQ号,小娜给了小明一个加密的号码:631758924,并告诉小明,要想知道我的QQ号啊,你需要这样操作:
首先把第1个数删掉,再把第2个数放到号码的最后,再把第3个数删掉,把第4个数放到最后,……,直到号码里没有数,删掉的数就是我的QQ号码啦!
*/
int iEncryptedData[128] = {6,3,1,7,5,8,9,2,4};
int head = 0;
int tail = 9;
while (head < tail)
{
printf("%d ", iEncryptedData[head]);
head++;
iEncryptedData[tail] = iEncryptedData[head];
tail++;
head++;
}
}
结果是: