码迷,mamicode.com
首页 > 编程语言 > 详细

C语言 简单的队列(数组队列)

时间:2016-03-02 19:49:12      阅读:264      评论:0      收藏:0      [点我收藏+]

标签:

//简单的队列

#include<stdio.h>
#include<stdlib.h>

#define datatype int
#define N 10

//定义队列结构体
struct queue{
    int front;//队头
    int endline;//队尾
    datatype data[N];//数据
};

typedef struct queue Queue;

Queue myQueue = { 0, 0, { 0 } };

//初始化队列
void initQueue(Queue * p);
//入队
void enQueue(Queue *pque, datatype data);
//出队
void deQueue(Queue *pque);
//遍历队列
void printfQueue(Queue *pque);

//数组队列只能使用一次,使用之后必须初始化后才可以继续使用

void main(){
    Queue *pque = (Queue *)malloc(sizeof(Queue));
    initQueue(pque);
    //插入队列
    enQueue(pque,1);
    enQueue(pque,2);
    enQueue(pque,8);
    enQueue(pque,3);
    enQueue(pque,7);
    //打印队列
    printfQueue(pque);
    //出队
    deQueue(pque);
    //打印队列
    printfQueue(pque);
    deQueue(pque);
    //打印队列
    printfQueue(pque);
    system("pause");
}

//初始化队列
void initQueue(Queue *pque){
    pque->front = pque->endline = 0;//清空队列
}

//入队
void enQueue(Queue *pque,datatype data){
    //判断队列是否溢出
    if (pque->endline<N)
    {
        //判断队列是否为空
        if (pque->front == pque->endline)//队头和队尾重合表明没有元素
        {
            //初始化队列
            initQueue(pque);
        }
        pque->data[pque->endline] = data;
        pque->endline += 1;
        
    }
    else{
        return;
    }
    
}

//出队
void deQueue(Queue *pque){
    //判断队列是否为空
    if (pque->front == pque->endline)
    {
        //队列为空
        return;
    }
    else{
        //直接弹出最后一个
        printf("弹出的元素是%d\n", pque->data[pque->front]);
        pque->front+= 1;
    }
}

//遍历队列
void printfQueue(Queue *pque){
    for (int i = pque->front; i < pque->endline; i++)
    {
        printf("%d\n", pque->data[i]);
    }
}

 

技术分享

C语言 简单的队列(数组队列)

标签:

原文地址:http://www.cnblogs.com/zhanggaofeng/p/5235900.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!