zoukankan      html  css  js  c++  java
  • 环形队中实现队列的基本运算

    /*队空条件:front=rear
    队满条件:(rear+1)%MaxSize=front
    进队e操作:rear=(rear+1)%MaxSize; 将e放在rear处
    出队操作:front=(front+1)%MaxSize;取出front处元素e; */
    #include <iostream>
    #include <malloc.h>
    using namespace std;
    const int maxn=4;
    
    typedef struct
    {
        int data[maxn];
        int front,rear;
    }queue;
    //初始化队列
    void init(queue *&q)
    {
        q=(queue*)malloc(sizeof(queue));
        q->rear=q->front=0;
    }
    //销毁队列
    void destroy(queue *&q)
    {
        free(q);
    }
    //判断队列是否为空
    bool empty(queue *&q)
    {
        return q->front==q->rear;
    }
    //进队列
    void push(queue *&q,int e)
    {
        if((q->rear+1)%maxn==q->front)
        {
            cout<<"队满,无法入队!"<<endl;
            return;
        }
        q->rear=(q->rear+1)%maxn;
        q->data[q->rear]=e;
    }
    //出队列
    void pop(queue *&q)
    {
        if(q->front==q->rear)
        {
            cout<<"队空,无元素!"<<endl;
            return ;
        }
        q->front=(q->front+1)%maxn;
    }
    
    int main()
    {
        queue *q;
        init(q);
        push(q,2);
        push(q,4);
        cout<<empty(q);
        pop(q);
        pop(q);
        cout<<empty(q);
        return 0;
    }
    

  • 相关阅读:
    Markdown学习笔记
    Go 学习笔记(一)
    case中定义变量
    <转>MySql 与Oracle区别
    Java 时间转换问题总结
    线程之间共享
    并发编程快速入门
    redis主从复制
    jedis操作redis
    redis持久化方案
  • 原文地址:https://www.cnblogs.com/sr1993/p/3697936.html
Copyright © 2011-2022 走看看