为了账号安全,请及时绑定邮箱和手机立即绑定

有运行结果,但是一运行就会“停止运行”

http://img1.sycdn.imooc.com//56474eb9000128ce07860437.jpg

#include <iostream>


using namespace std;

//循环队列

class MyQueue

{

private:

    int *m_Queue;

    int m_Queuelen;

    int m_QueueCapacty;

    int m_Head;

    int m_Tail;

public:

    MyQueue(int QueueCapacty)

    {

        m_QueueCapacty=QueueCapacty;

        m_Queue=new int[m_QueueCapacty];

        ClearQueue();


    }

    ~MyQueue()

    {

        delete []m_Queue;

        m_Queue=NULL;

    }

    void ClearQueue()

    {

        m_Head=0;

        m_Tail=0;

        m_Queuelen=0;


    }

    bool QueueEmpty()const

    {

        if(m_Queuelen==0)

            return true;

        else

            return false;

    }

    bool QueueFull()const

    {

        if(m_Queuelen==m_QueueCapacty)

            return true;

        return false;


    }

    bool EnQueue(int Elem)

    {

        if(QueueFull())

            return false;

        else

        {

            m_Queue[m_Tail]=Elem;

            m_Tail++;

            m_Tail=m_Tail%m_QueueCapacty;

            m_Queuelen++;

            return true;

        }

    }

    int QueueLength()

    {

        return m_Queuelen;

    }

    bool DeQueue(int &Elem)

    {

        if(QueueEmpty())

            return false;

        else

        {

            Elem=m_Queue[m_Tail];

            m_Head++;

            m_Head=m_Head%m_QueueCapacty;

            m_Queuelen--;

            return true;

        }

    }

    int QueueLength()const

    {

        return m_Queuelen;

    }

    void QueueTravers()

    {

        for(int i=m_Head; i<m_Queuelen+m_Head; i++)

            cout<<m_Queue[i%m_QueueCapacty]<<endl;

    }

};


int main()

{

    MyQueue *p=new MyQueue(4);

    p->EnQueue(10);

    p->EnQueue(13);

    p->EnQueue(11);

    p->EnQueue(16);

    //p->EnQueue(12);

    p->QueueTravers();

    int e=0;

    p->DeQueue(e);

    cout<<endl;

    cout<<e<<endl;

    p->DeQueue(e);

    cout<<endl;

    cout<<e<<endl;

    p->QueueTravers();

    //p->ClearQueue();


   // p->EnQueue(22);

    //p->EnQueue(33);

    //p->QueueTravers();



    delete []p;


    return 0;

}


正在回答

2 回答

你这个 p 又不是数组,你为什么要 delete[] p;
delete p;就行了


0 回复 有任何疑惑可以回复我~
#1

qq_阳光下的海风_0 提问者

非常感谢!
2015-11-17 回复 有任何疑惑可以回复我~
#2

qq_阳光下的海风_0 提问者

不是吧,改了后真的好了,就一个[]。有这么大的差别呀!!!!
2015-11-17 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//5a3c9b62000101c603400493.jpg

这里还有点问题 


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

有运行结果,但是一运行就会“停止运行”

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信