为了账号安全,请及时绑定邮箱和手机立即绑定
  • 队列  :普通队列   浪费资源不方便

                环形队列    充分利用每个内存空间

    查看全部
    0 采集 收起 来源:队列

    2019-01-07

  • #include "Customer.h"
    class MyQueue{
    public:
        ...
        bool EnQueue(Customer element);
        bool DeQueue(Customer &element);
        ...
    private:
        Customer *m_pQueue;
        ...
    };
    //在MyQueue.cpp中
    void MyQueue::QueueTraverse(){
        for(int i=m_iHead;i<m_iQueueLen + m_iHead;i++){
            m_pQueue[i%m_iQueueCapacity].printInfo();
            //printInfo是Customer中的成员函数,打印出Customer的数据成员
        }
    }
    //使用
    MyQueue *p=new MyQueue[4];
    Customer c1("zhangsan",20);
    p->EnQueue(c1);


    查看全部
  • //MyQueue.cpp
    
    #include "MyQueue.h"
    #include <iostream>
    using namespace std;
    
    MyQueue::MyQueue(int queueCapacity){
        m_iQueueCapacity=queueCapacity;
        ClearQueue();m_pQueue=new int[m_iQueueCapacity];
    }
    MyQueue::~MyQueue(){
        delete []m_pQueue;
        m_pQueue=NULL;
    }
    void MyQueue::ClearQueue(){
        m_iHead=0;
        m_iTail=0;
        m_iQueueLen=0;
    }
    //判断为空
    bool MyQueue::QueueEmpty() const{
        if(m_iQueueLen==0){
            return true;
        }
        else{
            return false;
        }
    }
    //队列长度
    int MyQueue::QueueLength() const{
        return m_iQueueLen;
    }
    //插入新元素
    bool MyQueue::EnQueue(int element){
        if(QueueFull()){
            return false;
        }
        else{
            m_pQueue[m_iTail]=element;
            m_iTail++;  //下标
            m_iTail=m_iTail % m_iQueueCapacity;
            m_iQueueLen++;return true;
        }
    }
    //判断为满
    bool MyQueue::QueueFull() const{
        if(m_iQueueLen == m_iQueueCapacity){
            return true;
        }
        else{
            return false;
        }
    }
    //元素出队
    bool MyQueue::DeQueue(int &element){//必须是引用
        if(QueueEmpty()){
            return false;
        }
        else{
            element=m_pQueue[m_iHead];
            m_iHead++;
            m_iHead=m_iHead % m_iQueueCapacity;
            m_iQueueLen--;return true;
        }
    }
    //遍历
    void MyQueue::QueueTraverse(){
        cout<<endl;
        for(int i=m_iHead;i<m_iQueueLen+m_iHead;i++){
            cout<<m_pQueue[i%m_iQueueCapacity]<<endl;
        }
    }


    查看全部
    0 采集 收起 来源:环形队列检测

    2018-12-30

  • class MyQueue{
    public:
        MyQueue(int queueCapacity);   //创建队列
        virtual ~MyQueue();    //销毁队列
        void ClearQueue();   //清空队列
        bool QueueEmpty() const;   //判空队列
        int QueueLength() const;   //队列长度
        bool EnQueue(int element);   //新元素入队
        bool DeQueue(int &element);   //首元素出队
        void QueueTraverse();    //遍历队列
    private:
        int *m_pQueue;     //队列数组指针
        int m_iQueueLen;     //队列元素个数
        int m_iQueueCapacity;   //队列数组容量
    };
    查看全部
  • 【队列】先入先出First in First out(FIFO)

    1、普通队列

    2、环形队列:顺时针和逆时针的排队

    查看全部
    0 采集 收起 来源:队列

    2018-12-30

  • .
    查看全部
  • .
    查看全部
  • .
    查看全部
  • .
    查看全部
  • .
    查看全部
  • .
    查看全部
  • .
    查看全部
  • .
    查看全部
  • .
    查看全部
  • .
    查看全部

举报

0/150
提交
取消
课程须知
本课程是程序世界中的核心课程 由于本门课程是以C++为编码实现的,所以需要大家熟练掌握C++语言基础语法。
老师告诉你能学到什么?
1、什么是数据结构、什么是队列以及队列的实现原理 2、如何设计队列的类,如何完善类的设计 3、如何实现队列的相关函数 4、如何检验代码的正确性,如何完善代码 5、如何与实际相结合,利用数据结构解决实际问题

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!