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]);
        }
    }

  • 相关阅读:
    搭建 mariadb 数据库主从同步
    MySQL--MVCC
    剑指 Offer 07. 重建二叉树
    剑指 Offer 06. 从尾到头打印链表
    MySQL--数据库范式
    剑指 Offer 05. 替换空格
    剑指 Offer 04. 二维数组中的查找
    剑指offer_03_数组中重复的数字(Java)
    Redis
    MySQL--SQL执行过程
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5235900.html
Copyright © 2011-2022 走看看