堆栈的基本操作:
初始化
测试是否已满
进栈
初始化
测试是否已满
进栈
出栈
测试代码:
#include <iostream>
class FDSTACK{
#define EMPTY 0
#define FULL 1
#define PASS 2
#define FAIL 3
private:
int *stack;
int topStack;
public:
FDSTACK(int bufferLength){
stack = new int[bufferLength];
}
~FDSTACK(){
free(stack);
}
void initialStack(){ // 初始化堆栈
topStack = -1;
}
int isEmpty(){ // 测试堆栈是否为空,为空返回0
return topStack == -1;
}
int isFull(){ // 测试堆栈是否已满,为满返回1
return topStack == (MAXBUFFER - 1);
}
int pushStack(int data){ // 入栈 成功返回PASS,失败返回FAIL
if(isFull()){
return FAIL;
}else{
topStack++;
stack[topStack] = data;
}
return PASS;
}
int popStack(){ // 出栈 成功返回数据
if(isEmpty()){
return FAIL;
}else{
return stack[topStack--];
}
}
};
int main(){
FDSTACK st(1024);
st.initialStack();
for(int i = 2; i < 10; i++){
st.pushStack(i);
}
for(int i = 2; i < 19; i++){
std::cout << st.popStack() << std::endl;
}
return 0;
}