zoukankan      html  css  js  c++  java
  • 队列的操作

    #include <stdio.h>
    #include <stdbool.h>
    #include <stdlib.h>
    #include <malloc.h>
    
    typedef struct Queue
    {
        int * pBase; //数组的首地址
        int front;
        int rear;
    }QUEUE;
    
    void init(QUEUE * );
    bool en_queue(QUEUE *, int );
    void traverse_queue(QUEUE *);
    bool full_queue(QUEUE *);
    bool out_queue(QUEUE * , int * );
    bool emput_queue(QUEUE *);
    
    int main()
    {
        QUEUE Q;
        int val;
        init(&Q);
        /*en_queue(&Q, 1);
        en_queue(&Q, 2);
        en_queue(&Q, 3);
        en_queue(&Q, 4);
        en_queue(&Q, 5);
        en_queue(&Q, 6);
        en_queue(&Q, 7);
        en_queue(&Q, 8);*/
        traverse_queue(&Q);
    
        if(out_queue(&Q, &val))
            printf("出队成功,队列出队的元素是: %d
    ", val);
        else
            printf("出队失败!
    ");
        traverse_queue(&Q);
    
        return 0;
    }
    
    void init(QUEUE * pQ)
    {
        pQ->pBase = (int *)malloc(sizeof(int)*6);
        pQ->front = 0;
        pQ->rear = 0;
    }
    
    bool full_queue(QUEUE * pQ)
    {
        if((pQ->rear+1)%6==pQ->front)
            return true;
        else
            return false;
    }
    void traverse_queue(QUEUE * pQ) //从头部遍历
    {
        int i = pQ->front;
        while(i!=pQ->rear)
        {
            printf("%d ", pQ->pBase[i]);
            i = (i+1)%6;
        }
        printf("
    ");
        return;
    }
    bool en_queue(QUEUE * pQ, int val) //入队
    {
        if(full_queue(pQ))
            return false;
        else
        {
          pQ->pBase[pQ->rear] = val;
          pQ->rear = (pQ->rear+1)%6;
    
          return true;
        }
    }
    bool emput_queue(QUEUE * pQ) //判断队空
    {
        if(pQ->rear==pQ->pBase)
            return true;
        else
            return false;
    }
    bool out_queue(QUEUE * pQ, int * pVal)
    {
        if(emput_queue(pQ))
        {
            return false;
        }
        else
        {
            *pVal = pQ->pBase[pQ->front];
            pQ->front = (pQ->front+1)%6;
            return true;
        }
    
    }
  • 相关阅读:
    vue项目搭建
    js监听input输入框值的实时变化实例
    nodejs-Child Process模块
    nodejs-Express框架
    前端的存储技术cookie、sessionStorage、localStorage
    node.js之path
    css两列自适应布局的多种实现方式及原理。
    React jQuery公用组件开发模式及实现
    js创建对象的几种方式
    IE9 不F12打开控制台,代码不执行。打开后正常
  • 原文地址:https://www.cnblogs.com/spore/p/11087238.html
Copyright © 2011-2022 走看看