C++ 堆栈

来源:百度知道 编辑:UC知道 时间:2024/06/18 12:20:56
class seqstack//头文件
{
public:
int *data;
int top;
int maxsize;
public:
seqstack(int mx)
{
top=-1;
maxsize=mx;
data=new int[maxsize];
}
bool isempty();//是否为空
void push(int value);//入栈
void pop();//出栈
int gettop();//取顶点元素
bool isfull();//是否已满
};

#include"iostream.h"
#include"stdlib.h"
bool seqstack::isempty()
{
if(top==-1)
return 1;
return 0;
}
bool seqstack::isfull()
{
if(top==maxsize-1)
return 1;
return 0;
}
void seqstack::push(int value)
{
if(seqstack::isfull())
{
cout<<"the stack is full"<<endl;
abort();
}
top++;
data[top]=value;
}
void seqstack::pop()
{
if(seqstack::isempty())
{
cout<<"the stack is empty"<<endl;
abort();

帮你单步调了下,程序没什么问题只是其中的头文件放开头的地方!另外不明白你最后的那几句什么意思!还有个建议,你这么多函数里都用到了判断栈是不是空的,最好把同样的语句封装到一个函数内,然后让其他函数调用它!!

你想说什么?