zoukankan      html  css  js  c++  java
  • 队列的实际了解

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

    输入: 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用来记录队列的队尾(即最后一位)的下一个位置,之所以是下一位,是因为当队列中
     //只剩下一个元素时,队首和队尾重合会带来一些麻烦。在这里规定队首和队尾重合时,队列为空。 
  • 相关阅读:
    线程池和进程池
    初识数据库
    线程q
    event事件
    死锁和递归锁
    信号量
    PythonStudy——线程中的几种消息队列
    PythonStudy——GIL Global Interpreter Lock 全局解释器锁
    PythonStudy——异步回调
    PythonStudy——日志模块 logging
  • 原文地址:https://www.cnblogs.com/hrlsm/p/12837768.html
Copyright © 2011-2022 走看看