美文网首页
重拾算法Day05-队列

重拾算法Day05-队列

作者: 面试小集 | 来源:发表于2016-11-05 19:08 被阅读12次

解密QQ

小哼问小哈QQ,小哈说了一串加密数字"6 3 1 7 5 8 9 2 4", 解密规则是:丢到第一个数字,将第二个放在其他数字后面;丢到第三个数字,将第四个放在其他数字后面;如此依次循环,QQ号是丢掉数字的排列("6 1 5 9 4 7 2 8 3")。
数组写法

#include <stdio.h>

int main(int argc, const char * argv[]) {
    
    int q[102]={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 ++;    //指向最新头部
    }

    return 0;
}

结构体写法

#include <stdio.h>

struct queue
{
    int data[100];  //队列主体,用来存储内容
    int head;   //队首
    int tail;   //队尾
};

int main(int argc, const char * argv[]) {
    
    struct queue q;
    q.head = 1;
    q.tail = 1;
    for (int i=1; i<=9; i++) {
        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;
}

队列总结

队列是一种特殊的线性结构,它只允许在队列的首部(head)进行删除操作(出队),而在队列的尾部进行插入操作(入队)。队列的特性:"先进先出"。

相关文章

  • 重拾算法Day05-队列

    解密QQ 小哼问小哈QQ,小哈说了一串加密数字"6 3 1 7 5 8 9 2 4", 解密规则是:丢到第一个数字...

  • 数组实现环形队列

    利用数组结构在队列的基础下用取模算法来实现环形队列。 环形队列拥有复用功能。 主要算法思想:1)front指向队列...

  • heapq : 堆队列算法

    heapq : 堆队列算法 Source code: Lib/heapq.py 介绍 这个模块提供了堆队列算法的实...

  • 排序算法

    什么是算法 书籍推荐 《数据结构与算法分析》 表、栈和队列 树 散列(hash) 优先队列(堆) 排序 定义 问题...

  • 多级队列调度算法

    多级队列调度算法将系统中不同类型或性质的就绪进程固定分配到不同的就绪队列中,每个就绪队列可以采用自己的调度算法;而...

  • 并发编程之并发队列

    常见的并发队列有2种:阻塞队列和非阻塞队列。阻塞队列使用锁实现,非阻塞队列使用CAS非阻塞算法实现。这2种队列都是...

  • 如何在javascript中使用优先级队列

    摘要:学习优先级队列很重要,因为它被用于许多算法中,例如 Dijkstra 的最短路径算法使用优先级队列。 介绍先...

  • 链式队列的定义,ios基础知识篇!

    数据结构与算法-链式队列 链式队列的定义 链式队列是用链表来实现的队列,不存在队满的情况。链式队列也包里队列的特点...

  • 算法 -- 数组&链表 -- 01

    前端同学工作需掌握的相关算法内容。同系列文章(TODO): 算法复杂度 算法 -- 栈&队列 -- 02 算法 -...

  • 并发队列-无界非阻塞队列ConcurrentLinkedQueu

    一、 前言 常用的并发队列有阻塞队列和非阻塞队列,前者使用锁实现,后者则使用CAS非阻塞算法实现,使用非阻塞队列一...

网友评论

      本文标题:重拾算法Day05-队列

      本文链接:https://www.haomeiwen.com/subject/oqrguttx.html