• 队列的顺序存储结构及其基本运算的实现


    代码:

    #include <iostream>
    #include <malloc.h>
    using namespace std;
    const int maxn=500;
    
    typedef struct
    {
        int data[maxn];
        int front,rear;
    }queue;
    
    //初始化队列
    void init(queue *&q)
    {
        q=(queue*)malloc(sizeof(queue));
        q->rear=q->front=-1;
    }
    //销毁队列
    void destroy(queue *&q)
    {
        free(q);
    }
    //判断队列是否为空
    bool empty(queue *&q)
    {
        return  q->front==q->rear;
    }
    //进队列(首指针不变,尾指针++)
    void push(queue *&q,int e)
    {
        if(q->rear==maxn-1)
        {
            cout<<"队列已满,无法入队!"<<endl;
            return ;
        }
        q->rear++;
        q->data[q->rear]=e;
    }
    //出队列
    void pop(queue *&q)
    {
        if(q->front==q->rear)
        {
            cout<<"队空,无法出队!"<<endl;
            return;
        }
        q->front++;
    }
    //获取队首元素
    int front(queue *q)
    {
        if(q->rear==q->front)
        {
            cout<<"队空,没有元素!"<<endl;
            return 0;
        }
        return q->data[q->front+1];
    }
    
    
    int main()
    {
        queue *q;
        init(q);
        push(q,2);
        push(q,3);
        cout<<front(q)<<endl;
        cout<<empty(q)<<endl;
        pop(q);
        cout<<front(q)<<endl;
        pop(q);
        cout<<empty(q)<<endl;
        return 0;
    }
    


     

  • 相关阅读:
    centos7.5部署mysql cluster NDB总结
    读《构建之法》13--17章有感
    读《构建之法》8--10章
    作业5.2
    作业5.1
    读《构建之法》6--7章读后感
    做汉堡,做汉堡
    《构建之法》1—5章读后感
    第二次作业
    1
  • 原文地址:https://www.cnblogs.com/vivider/p/3697685.html
Copyright © 2020-2023  润新知