问题:建立顺序栈还是比较简单的。主要是一开始在入栈操作中每次调用初始化栈函数,结构出错。
代码:
#include#include using namespace std;#define MAXSIZE 20typedef struct SeqStack{ int stack [MAXSIZE]; int top;}*stackNode;void initStack(stackNode &stack){ stack=(stackNode)malloc(sizeof(struct SeqStack)); if(!stack) { cout<<"allocate fail"< top=-1; }}void pushStack(stackNode stack,int elem){ if(stack->top==MAXSIZE) { cout<<"stack is full"< stack[++(stack->top)]=elem; }}int popStack(stackNode stack){ int elem; if(stack->top==-1) { cout<<"栈已空"< stack[stack->top]; --stack->top; return elem;}int topStack(stackNode stack){ int top; if(stack->top==-1) { cout<<"栈已空"< stack[stack->top]; return top;}void showStack(stackNode stack){ if(stack->top==-1) { cout<<"栈已空"< top!=-1) { cout< stack[stack->top]<<"--"; --stack->top; } cout<
运行截图: