zoukankan      html  css  js  c++  java
  • 队列学习总结

    规则是这样的:首先将第1个数删除,紧接着将第2个数放到这串数的末尾,再将第3个数删除并将第4个数再放到这串数的末尾,
    再将第5个数删除……直到剩下最后一个数,将最后一个数也删除。按照刚才删除的顺序,把这些删除的数连在一起就是要求的数,
    给一串数是“6 3 1 75 8 9 2 4”输出6 1 5 9 4 7 2 8 3。
    
    #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++;
        }
       
            return 0;
    }
    
    队列将是我们今后学习广度优先搜索以及队列优化的Bellman-Ford最短路算法的核心数据结构。所以现在将队列的三个基本元素(一个数组,两个变量)
    封装为一个结构体类型,如下
    
    #include <stdio.h>
    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个数
            scanf("%d",&q.data[q.tail]);
            q.tail++;
        }
       
        while(q.head<q.tail) //当队列不为空的时候执行循环
        {
            //打印队首并将队首出队
            printf("%d ",q.data[q.head]);
            q.head++;
            
            //先将新队首的数添加到队尾
            q.data[q.tail]=q.data[q.head];
            q.tail++;
            //再将队首出队
            q.head++;
        }
       
          return 0;
    }
  • 相关阅读:
    获取系统环境变量
    改变系统提示信息
    获取任务栏大小
    获取系统启动后经过的时间
    获取系统版本号
    z-tree的使用
    vue学习-day05 -- 案例:名字合并(监听data数据的改变)
    vue学习-day04(路由)
    eclipse在线安装ermaster插件
    vue学习-day03(动画,组件)
  • 原文地址:https://www.cnblogs.com/NYNU-ACM/p/4297933.html
Copyright © 2011-2022 走看看