• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

求大神看看哪里出错了

#ifndef MYQUEUE_H#define MYQUEUE_Hclass MyQueue{public:        MyQueue(int queueCapacity);      //InitQueu(&Q)                           创建队列        virtual ~MyQueue();                                                //DestroyQueue(&Q)   销毁队列        void ClearQueue();                                                //ClearQueue(&Q)       清空队列        bool QueueEmpty() const;                                                //QueueEmmpty(Q)     判空队列        bool QueueFull() const;                                                        //判满队列        int QueueLength() const;                                                //QueueLength(Q)                对列长度        bool EnQueue(int element);                        //EnQueue(&Q, element)    新元素入队        bool DeQueue(int &element);                //DeQueue(&Q, &element)    首元素出列        void QueueTraverse();                                        //QueueTraverse(Q, visit())     遍历队列private:        int *m_pQueue;                                                        //队列数组指针        int m_iQueueLen;                                                        //队列元素个数        int m_iQueueCapacity;                                        //队列数组容量        int m_iHead;        int m_iTail;};#endif;#include "MyQueue.h"#include using namespace std;MyQueue::MyQueue(int queueCapacity){        m_iQueueCapacity = queueCapacity;        //m_iHead = 0;        //m_iTail = 0;        //m_iQueueCapacity = 0;        m_pQueue = new int[m_iQueueCapacity];        ClearQueue();}MyQueue::~MyQueue(){        delete []m_pQueue;        m_pQueue = NULL;}void MyQueue::ClearQueue(){        m_iHead = 0;        m_iTail = 0;        m_iQueueCapacity = 0;}bool MyQueue::QueueEmpty() const{        if (m_iQueueLen == 0)        {                return true;        }        else        {                return false;        }        //return m_iQueueLen == 0 ? trur :false;}int MyQueue::QueueLength() const{        return m_iQueueLen;}bool MyQueue::QueueFull() const{        if (m_iQueueLen == m_iQueueCapacity)        {                return true;        }        else return false;}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::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(){                for (int i = m_iHead; i < m_iQueueLen + m_iHead; i++)        {                cout EnQueue(12);</p>        p->EnQueue(16);
        p->EnQueue(18);
        //p->EnQueue(20);
        p->QueueTraverse();


        int e = 0;
        p->DeQueue(e);
        cout QueueTraverse();


        p->EnQueue(20);
        p->EnQueue(30);
        p->QueueTraverse();


        delete p;
        p = NULL;


        system("pause");
        return 0;
}

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

全部参与1

额,不知道你是否找到了错误结果
类中的 voidClearQueue(); 函数有问题
voidMyQueue::ClearQueue(){m_iHead=0;m_iTail=0;m_iQueueCapacity=0;/*m_iQueuecapacity按照定义为该队列的容量。(一旦定义不可改,除非销毁)而你定义的ClearQueue()应该是清空队列的元素。故此处应该是把队列的元素长度初始化为0。更正:m_iQueueLen=0;*/}错误体现:
在类的构造函数中:
MyQueue::MyQueue(intqueueCapacity){m_iQueueCapacity=queueCapacity;//m_iHead=0;//m_iTail=0;//m_iQueueCapacity=0;m_pQueue=newint[m_iQueueCapacity];ClearQueue();//此处进入错误的ClearQueue()队列清空函数,将m_iQueueCapacity队列容量设置为0。}在主函数的
p->EnQueue(10);//---------->进入下面EnQueue(intelement)boolMyQueue::EnQueue(intelement){if(QueueFull()){returnfalse;}else{m_pQueue[m_iTail]=element;m_iTail++;m_iTail=m_iTail%m_iQueueCapacity;//此处报错,m_iTail=1%0,构造时候m_iQueueCapacity已经设为0。%0的错误。m_iQueueLen++;returntrue;}}

使用道具 举报

发新帖

发布任务需求已有1031291位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!