队列的实际了解
题目描述:将一些数字“排队”,每次从前面拿两个,第一个扔掉,第二个放到尾部,按照扔掉的顺序,求把这些扔掉的数连在一起的数字序列。
输入: 631758924
输出:615947283
#include<iostream> using namespace std; struct queue{ int data[100];//队列主体,用来存储内容 int head;//队首 int tail;//队尾 }; int main() { struct queue q; int i; //初始化队列 q.head=1; q.tail=1; for(i=1;i<=9;i++) { //依次向队列插入9个数 cin>>q.data[q.tail]; q.tail++; } while(q.head<q.tail)//当队列不为空的时候执行循环 { //打印队首并将队首出队 cout<<q.data[q.head] ; q.head++; //先将新队首的数添加到队尾 q.data[q.tail]=q.data[q.head] ; q.tail++; //再将队首出队 q.head++; } } //队列是一种特殊的线性结构,他只允许在队列的首部进行删除操作,称为“出队” //在队列的尾部进行插入操作,称为入队,head用来记录队列的队首(即第一位), //tail用来记录队列的队尾(即最后一位)的下一个位置,之所以是下一位,是因为当队列中 //只剩下一个元素时,队首和队尾重合会带来一些麻烦。在这里规定队首和队尾重合时,队列为空。