zoukankan      html  css  js  c++  java
  • C语言 简单的队列(数组队列)

    //简单的队列
    
    #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
    ", pque->data[pque->front]);
            pque->front+= 1;
        }
    }
    
    //遍历队列
    void printfQueue(Queue *pque){
        for (int i = pque->front; i < pque->endline; i++)
        {
            printf("%d
    ", pque->data[i]);
        }
    }

  • 相关阅读:
    内置函数filter()和匿名函数lambda解析
    time&datetime模块详解
    python学习笔记:*args和**kwargs使用原理?
    python学习笔记:深浅拷贝的使用和原理
    python传参是传值还是传引用
    第215天:Angular---指令
    第214天:Angular 基础概念
    第213天:12个HTML和CSS必须知道的重点难点问题
    第212天:15种CSS居中的方式,最全了
    第211天:git和github的区别和使用详解
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5235900.html
Copyright © 2011-2022 走看看