环形队列的基本操作

本文介绍了一个基于C++的队列数据结构实现,包括初始化、入队、出队、判断空队列及打印队列元素等核心功能。通过用户输入节点数量和数据,演示了队列的基本操作流程。

```cpp
#include<iostream>
using namespace std;
const int Max=50;
    typedef class student
        {
        public :
            int  data[Max];
            int fronts,rears;
        }Queue;

    void initqueue(Queue &q);
    void inqueue(Queue &q,int x);
    void outqueue(Queue &q,int &x);
    bool empty_queue(Queue &q);
    void printlist(Queue &q);


    int main()
        {
            int n,i,m;
            cout<<"你想在队列中输入几个节点的数据几个节点"<<endl;
            cin>>n;
            Queue q;
            initqueue(q);
            for(i=0;i<n;i++)
                {
                    cin>>m;
                    inqueue(q,m);
                }
            printlist(q);
            return 0;

        }

   void initqueue(Queue &q)

    {
        q.fronts=q.rears=0;
    }

     bool empty_queue(Queue &q)
        {
            if(q.fronts==q.rears)
            {
                return true;
            }

            else
            {
                return false;
            }
        }

    void inqueue(Queue &q,int x)

        {
            if((q.rears+1)%Max==q.fronts)

                {
                    return ;
                }

            else

                {

                    q.rears=(q.rears+1)%Max;
                    q.data[q.rears]=x;

                }

        }

    void outqueue(Queue &q,int &x)


       {

            if(empty_queue(q)==true)

                    {
                        return ;
                    }
            else
                    {
                        q.fronts=(q.fronts+1)%Max;
                        x=q.data[q.fronts];

                    }
        }



        void printlist(Queue &q)
            {
                if(empty_queue(q)==true)

                    {
                        return ;
                    }

                else

                {
                    int p=q.fronts+1;
                    while(p<=q.rears)
                    {
                        cout<<q.data[p]<<" ";
                        p=(p+1)%Max;
                    }
                }
            }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值