m_iHead和m_iTail明明初始化為0了,可是測試發(fā)現(xiàn)變成了-842150451
我沒有辦法執(zhí)行,m_iHead和m_iTail明明初始化為0了,可是測試發(fā)現(xiàn)變成了-842150451,有人知道為什么嗎?其他的代碼基本都照著教程寫了
//.h
#pragma once
class myQueue
{
public:
myQueue(int queueCapacity);//創(chuàng)建
virtual ~myQueue(void); ? ?//銷毀
void clearQueue(); ? ? ? ? //清空
bool queueEmpty()const; ? ?//判空
bool queueFull()const; ? ? //判滿
int queueLength()const; ? ?//隊列長度
bool enQueue(int element); //首元素入列
bool deQueue(int &element);//首元素出列
? ? void queueTraverse(); ? ? ?//遍歷
private:
int *m_pQueue; ? ? ? ? ? ? //隊列指針
int m_iqueueLen; ? ? ? ? ? //隊列長度
int m_iqueueCapacity; ? ? ?//隊列容量
int m_iHead; ? ? ? ? ? ? ? //隊頭
int m_iTail; ? ? ? ? ? ? ? //隊尾
};
//.cpp
#include "myQueue.h"
#include <iostream>
using namespace std;
//#include<stdio.h>
myQueue::myQueue(int queueCaoacity)
{
m_iqueueCapacity=queueCaoacity;
m_pQueue=new int[m_iqueueCapacity];
? ? int m_iHead=0;
int m_iTail=0;
int m_iqueueLen=0;
}
myQueue::~myQueue(void)
{
? ? delete[]m_pQueue;
//m_pQueue = NULL;
m_pQueue =nullptr;
}
void myQueue::clearQueue() ? ? //清空
{
int m_iHead=0;
int m_iTail=0;
int m_iqueueLen=0;
} ? ??
bool myQueue::queueEmpty()const//判空
{
return m_iqueueLen==0?true:false;
} ?
bool myQueue::queueFull()const//判滿
{
return m_iqueueLen==m_iqueueCapacity?true:false;
}; ? ?
int myQueue::queueLength()const//隊列長度
{
return m_iqueueLen;
} ?
bool myQueue::enQueue(int element)//首元素入列
{
if(queueFull())
{
return false;
}
else
{
? ? ? ? m_pQueue[m_iTail%m_iqueueCapacity]=element;
m_iTail++;
m_iTail=m_iTail%m_iqueueCapacity;
m_iqueueLen=m_iqueueLen+1;
cout<<"rulie"<<m_iqueueLen<<endl;
? ?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--;
cout<<"chulie"<<endl;
? ?return true;
}
}
void myQueue::queueTraverse() ? ? ?//遍歷
{
cout<<m_iqueueLen;
for(int i=m_iHead;i<m_iHead+m_iqueueLen;i++)
{
cout<<m_pQueue[i%m_iqueueCapacity]<<endl;
cout<<m_pQueue[i%m_iqueueCapacity]<<endl;
}
}
2016-10-18
#include "MyQueue.h"
#include <iostream>
using namespace std;
MyQueue::MyQueue(int queueCapacity)
{
int m_iQueueCapacity=queueCapacity; //隊列數(shù)組容量
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
{
return m_iQueueLen==0?true:false;
}
int MyQueue::QueueLength() const
{
return m_iQueueLen;
}
bool MyQueue::QueueFull()const
{
return m_iQueueLen==m_iQueueCapacity?true: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<<m_pQueue[i%m_iQueueCapacity]<<endl;
}
cout<<endl;
}
2017-04-18
為什么length要加const,他是可變的啊,
2017-03-17
我也出現(xiàn)了這樣的結(jié)果 但是我是因為判滿,判空,還有隊列長度這三個函數(shù)沒有加const,我想問一下這里為什么要加const
2016-10-20
先初始0,再掛在數(shù)組
2016-10-18
你的demo文件怎么寫的