我写了个栈摸拟请高手看看,我存在的问题比如"看了你的代码,我感觉你在编程中有以下通病"
//帮我看看我的编程中隐藏的问题,当然不是就此程序论此程序,就是通过此代码可以看出我的
//常出问题的地方编程误区, 我的QQ:81231578 马丁......
// 本文来自铁道P246,;
//设计一个栈结构体的类,栈内存放的数据是三个字母的字符串(AAA,BCC,ABZ,KIS..)
//数据成员包括栈本身(stack),栈大小(size),及目前顶端位(top);
//成员函数则可以处埋栈内的数据引用,包括加入栈add(),从堆栈中删除delete(),
//检查堆栈是否已满IsFull(),检查堆栈是否已空等IsEmpty(),当然还有构造函数。
//测试时,可以写一段主程序main(),定义一个栈象,并对此对像做加入堆栈,
//删除栈的操作,提示:加入堆栈时,要考栈是否已满,且必须维护值保特在顶端的位置;
//删除栈时,则要考虑栈是否已空,并维护值在顶端位置
#include
#include
#include
#define FALSE -1
#define TURE 1
class stack
{
public:
stack(int sizeofstack);//构造函数
~stack();//析构函数
int ISFULL(class stack );
int ISEMPTY(class stack); //判断栈中是否为空
void COUTSTACKPT(class stack stacksample);//显示栈的内容
void ADD(char * str); //入栈操作
void POP(class stack stacksample); //弹栈操作
private:
char * stackpoint[20]; //指针数组
int size;
int top;
};
void stack::POP(class stack stacksample) //弹栈操作
{
if(ISEMPTY(stacksample)==FALSE)
{
top--;
}
}
void stack::ADD(char * str) //入栈操作
{
top++;
strcpy(stackpoint[top],str);
}
int stack::ISEMPTY(class stack stacksample)//判断栈是否为空
{
if(top=0) {return FALSE;}
else {cout stacksize;
stack t1(stacksize); //构造函数申请栈空间
t1.COUTSTACKPT(t1); //先判断后显示栈内容
for(i=0;i stacktemp;
t1.ADD(stacktemp);
}
cout