首页 > 编程语言 > 详细

C语言实现顺序队列

时间:2021-03-28 21:38:03      阅读:19      评论:0      收藏:0      [点我收藏+]
#include <stdio.h>

#define NUMBER 100

int push_queue(int* a, int rear, int data)
{
    a[rear] = data;
    rear++;
    return rear;
}

void pop_queue(int* a, int front, int rear)
{
    while (front != rear)
    {
        printf("%d ",a[front]);
        front++;
    }
    printf("\n");
    return;
}

int main()
{
    int a[NUMBER];
    int front, rear;
    front = 0;
    rear = 0;
    rear = push_queue(a, rear, 1);
    rear = push_queue(a, rear, 3);
    rear = push_queue(a, rear, 5);

    pop_queue(a, front, rear);

    return 0;
}

 第二种方法:解决上面那种浪费空间与可能出现溢出的情况

#include <stdio.h>

#define NUMBER 5

int push_queue(int* a, int front, int rear, int data)
{
    if ((rear + 1) % NUMBER == front) {
        printf("Space Full\n");
        return rear;
    }
    a[rear % NUMBER] = data;
    rear++;
    return rear;
}

int pop_queue(int* a, int front, int rear)
{
    if (front == (rear % NUMBER))
    {
        printf("Space Empty\n");
        return front;
    }
    printf("%d ",a[front]);
    front = (front + 1) % NUMBER;
    return front;
}

int main()
{
    int a[NUMBER];
    int front, rear;
    front = 0;
    rear = 0;
    rear = push_queue(a, front, rear, 1);
    rear = push_queue(a, front, rear, 3);
    rear = push_queue(a, front, rear, 5);
    rear = push_queue(a, front, rear, 6);
    front = pop_queue(a, front, rear);
    rear = push_queue(a, front, rear, 7);
    front = pop_queue(a, front, rear);
    rear = push_queue(a, front, rear, 9);
    front = pop_queue(a, front, rear);
    front = pop_queue(a, front, rear);
    front = pop_queue(a, front, rear);
    front = pop_queue(a, front, rear);
    return 0;
}

 

C语言实现顺序队列

原文:https://www.cnblogs.com/zgen1/p/14589617.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!