Java教程

算法学习3:数据结构-队列

本文主要是介绍算法学习3:数据结构-队列,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

队列(queue) 是一个先入先出(FIFO)的数据结构,由数据体、头指针和尾指针组成。

定义数据结构queue:

struct queue
{
    int data[100];
    int head;
    int tail;
};

在队首删除一个数(出队):

q.head++;

在队尾增加一个数(入队):

q.data[q.tail] = x;
q.tail++;

 

示例:解密码

密码是一个9位的数,解密规则:首先将第一个数删除,然后将第二个数放到这串数的末尾,然后将第三个数删除,第四个数放到末尾...... 直到剩下最后一个数,将这个数也删除。然后按照删除的顺序,把这些删除的数连在一起,就是解密后的数。

代码如下:

#include<stdio.h>

struct queue
{
    int data[100];
    int head;
    int tail;
};

int main()
{
    struct queue q;
    int i;

    // init queue
    q.head = 0;
    q.tail = 0;
    for (i = 0; i < 9; i++)
    {
        scanf_s("%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++;
    }

    getchar(); getchar();
    return 0;
}

 

这篇关于算法学习3:数据结构-队列的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!