#include?<iostream>
#include?"MyStack.h"
using?namespace?std;
/*?run?this?program?using?the?console?pauser?or?add?your?own?getch,?system("pause")?or?input?loop?*/
int?main(int?argc,?char**?argv)?
{
MyStack?*pStack=new?MyStack(5);?
if(pStack->stackEmpty())
{
cout<<"kong"<<endl;
}
else
{
cout<<"mei?kong"<<endl;
}
if(pStack->stackFull())
{
cout<<"man"<<endl;
}
????else
{
cout<<"mei?man"<<endl;
}
delete?[]pStack;
pStack=NULL;
return?0;
}
class?MyStack
{
public:
MyStack(int?size);
~MyStack();
bool?stackEmpty();//?D???
bool?stackFull();//?D?ú?
void?clearStack();//?????
int?stackLength();//?a????êy?
bool?push(char?elem);//è????
bool?pop(char?&elem);//3????
void?stackTraverse(bool?isFromButtom);//񂅣?
private:
char?*m_pBuffer;
int?m_iSize;
int?m_iTop;
};
#include?"MyStack.h"
#include?<iostream>
using?namespace?std;
MyStack::MyStack(int?size)
{
m_iSize=size;
m_pBuffer=new?char[m_iSize];
m_iTop=0;
}
MyStack::~MyStack()
{
delete?[]m_pBuffer;
m_pBuffer=NULL;
}
bool?MyStack::stackEmpty()
{
if(0==m_iTop)
{
return?true;
}
else
{
return?false;
}
}
bool?MyStack::stackFull()
{
if(m_iSize==m_iTop)
{
return?true;
}
else
{
return?false;
}
}
void?MyStack::clearStack()
{
m_iTop=0;
}
int?MyStack::stackLength()
{
return?m_iTop;
}
bool?MyStack::push(char?elem)?
{
if(!stackFull())
{
????m_pBuffer[m_iTop]=elem;
????m_iTop++;
????return?true;
}
else
{
return?false;
}
}
bool?MyStack::pop(char?&elem)
{
if(!stackEmpty())
{
????m_iTop--;
????elem=m_pBuffer[m_iTop];
????
????return?true;
}
else
{
return?false;
}
}
void?MyStack::stackTraverse(bool?isFromButtom)
{
if(isFromButtom)
{
???? for(int?i=0;i<m_iTop;i++)
???? {
???? cout<<m_pBuffer[i]<<endl;
???? }
}
else
{
for(int?i=m_iTop-1;i>=0;i--)
????? {
????????cout<<m_pBuffer[i]<<endl;
????}
}
}
2016-08-04
最后應(yīng)該寫成delete pStack;,
我看你寫成delete []pStack;????????
看來你和我一樣,一開始以為這個是五個長度的數(shù)組了所以加了[]
試試吧,我改過這個就對了
2016-04-30
這個問題我不知道,可是我能問一個小白問題嘛,你們平常用什么軟件寫代碼與運行???。。。