• 队列的实际了解


    题目描述:将一些数字“排队”,每次从前面拿两个,第一个扔掉,第二个放到尾部,按照扔掉的顺序,求把这些扔掉的数连在一起的数字序列。

    输入: 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用来记录队列的队尾(即最后一位)的下一个位置,之所以是下一位,是因为当队列中
     //只剩下一个元素时,队首和队尾重合会带来一些麻烦。在这里规定队首和队尾重合时,队列为空。 
  • 相关阅读:
    I帧/P帧/B帧---术语解释
    利用forwardInvocation实现消息重定向
    doubango地址配置
    ARC使用小结
    NSException异常处理
    Runtime of Objective-C
    perl脚本框架整理
    模块——Getopt::Long接收客户命令行参数和Smart::Comments输出获得的命令行参数内容
    Linux学习进阶示意图
    Linux——入门命令
  • 原文地址:https://www.cnblogs.com/hrlsm/p/12837768.html
Copyright © 2020-2023  润新知