曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4648|回复: 0
打印 上一主题 下一主题

[栈与队列] 用数组创建队列

[复制链接]

4918

主题

5880

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34397
跳转到指定楼层
楼主
发表于 2009-11-8 00:07:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
代码
#include <stdio.h>

#define MAXQUEUE    10    /*队列最大容量*/

int    queue [MAXQUEUE];    /*队列数组*/
int    front = -1;        /*队列的队头*/
int    rear = -1;        /*队列的队尾*/

/*数据的存入*/
int enqueue (int value)
{
    if (rear >= MAXQUEUE)    /*检查队列是否全满*/
        return (-1);    /*已满*/

    rear++;            /*队尾指针前移*/
    queue [rear] = value;
}

/*取出队列数据*/
int dequeue()
{
    if (front == rear)    /*检查队列是否为空*/
        return (-1);
    front++;
   
    return (queue [front]);
}

void main()
{
    int input [100];
    int output [100];
    int select;
    int i_count = 0;
    int o_count = 0;
    int loop = 1;
    int i, temp;

    while (loop) {
        /*选项内容*/
        printf ("[1]输入 [2]取出 [3]列出全部内容 ==> ");
        scanf ("%d", &select);
   
        switch (select) {
            case 1:
                printf ("请输入存入队列的值(%d) ==> ", i_count + 1);
                scanf ("%d", &temp);
                if (enqueue(temp) == -1)
                    printf ("队列全满.\n");
                else
                    input [i_count++] = temp;
                break;

            case 2:
                if ((temp = dequeue()) == -1)
                    printf ("队列是空的.\n");
                else {
                    printf ("取出队列元素: %d\n", temp);
                    output [o_count++] = temp;
                }
                break;

            case 3:
                loop = 0;
                break;
       
            }
    }

    printf ("输入队列的元素: ");
    for (i = 0; i < i_count; i++)
        printf ("[%d]", input[i]);

    printf ("\n取出队列的元素: ");
    for (i = 0; i < o_count; i++)
        printf ("[%d]", output[i]);

    printf ("\n剩下队列的元素: ");
        while ((temp = dequeue()) != -1)
            printf ("[%d]", temp);

    printf ("\n");
}
运行输出
beyes@beyes-groad:~/programming/data_structure/Queue$ ./queue.exe
[1]输入 [2]取出 [3]列出全部内容 ==> 1
请输入存入队列的值(1) ==> 3
[1]输入 [2]取出 [3]列出全部内容 ==> 1
请输入存入队列的值(2) ==> 8
[1]输入 [2]取出 [3]列出全部内容 ==> 1
请输入存入队列的值(3) ==> 9
[1]输入 [2]取出 [3]列出全部内容 ==> 9
[1]输入 [2]取出 [3]列出全部内容 ==> 1
请输入存入队列的值(4) ==> 7
[1]输入 [2]取出 [3]列出全部内容 ==> 1
请输入存入队列的值(5) ==> 19
[1]输入 [2]取出 [3]列出全部内容 ==> 2
取出队列元素: 3
[1]输入 [2]取出 [3]列出全部内容 ==> 2
取出队列元素: 8
[1]输入 [2]取出 [3]列出全部内容 ==> 3
输入队列的元素: [3][8][9][7][19]
取出队列的元素: [3][8]
剩下队列的元素: [9][7][19]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2025-6-17 16:21 , Processed in 0.090664 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表