zoukankan      html  css  js  c++  java
  • 从一道数组类型的题来看队列

    新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问 QQ号, 小哈当然不会直接告诉小哼啦,原因嘛你懂的。所以小哈给了小哼一串加密过的数字,同时 小哈也告诉了小哼解密规则。规则是这样的:首先将第 1个数删除,紧接着将第 2个数放到 这串数的末尾,再将第 3个数删除并将第 4个数放到这串数的末尾,再将第 5个数删除…… 直到剩下后一个数,将后一个数也删除。按照刚才删除的顺序,把这些删除的数连在一 起就是小哈的 QQ啦。现在你来帮帮小哼吧。小哈给小哼加密过的一串数是“6 3 1 7 5 8 9 2 4”。

    首先我们进行这题的分析,我们要做的很简单,就是对队列的一个操作,我们要做的就是这样先取出两个数,以一作为初始下标,我们要做的就是删除下标为奇数的,然后把下标为偶数的,这样顺序进行,我们可以进行解密;但是我们删除时要注意要记录下,这样得出结果,首先我们定义一个数组;int  q[100],然后进行处理

    #include<stdio.h>
    int main()
    {
        int q[101]={0,6,3,1,7,5,8,9,2,4},head,tail; //数组表示队列
        head=1;
        tail=10;
        while(head<tail)
        {
           printf("%d ",q[head]);//打印出数组的值;
           head++;
           q[tail]=q[head];
           tail++;
           head++;   //模仿队列的顺序出栈
           
        }
        getchar();
        getchar();
        return 0;
    }

    下面我们由此转发有队列的思考,其实队列可以抽象为我们对数组问题的深度思考,我们在进行队列的处理时需要设置结构体,然后进行结构体的一些处理即可

    #include<stdio.h>
    struct quete
    {
    int q[100];
    int head;
    int tail;
    };
    int main()
    {
        struct quete q;
        int i;
        q.head=1;
        q.tail=1;
        for(i=1;i<=10;i++)
        {
         scanf("%d",&q.q[q.tail]);
         q.tail++;
        }
        while(q.head<q.tail)
        {
    
            printf("%d",q.q[q.head]);
            q.head++;
            q.q[q.tail]=q.q[q.head];
            q.tail++;
            q.head++;
        }
        return 0;
    }

  • 相关阅读:
    性能测试方案和用例模板
    软件质量报告模板-产品质量度量
    性能测试报告模板
    SQL查询语法30例
    性能测试:Jmeter-Beanshell请求加密实例
    安全性测试:OWASP ZAP 2.8 使用指南(三):ZAP代理设置
    centos7下使用x11远程带窗口安装Oracle
    python Linux 环境 (版本隔离工具)
    Python多版本环境搭建(Linux系统)
    ArrayList1.8
  • 原文地址:https://www.cnblogs.com/kk328/p/9054061.html
Copyright © 2011-2022 走看看