#pragma once
#ifndef _SEQSTACK_
#define _SEQSTACK_
#include <iostream>
using namespace std;
typedef int DataType;
struct SeqStack {
int MAXNUM;
int t;
DataType *s;
};
typedef SeqStack Node;
typedef SeqStack *PSeqStack;
//创建空栈 放回栈指针
PSeqStack creatEmptyStasck(int m) {
PSeqStack stack = new Node;
if (stack != NULL) {
stack->s = new DataType[m];
if (stack->s != NULL) {
stack->MAXNUM = m;
stack->t = -1;
}
}
return stack;
}
//判断栈是否为空 是返回1 否返回0
int isEmptyStack(PSeqStack stack) {
if (stack->t = -1)return 1;
else return 0;
}
//进栈
void push_seq(PSeqStack stack, DataType x) {
//判断栈是否已满
if (stack->t >= stack->MAXNUM - 1) cout << "OverFlow" << endl;
else {
stack->t += 1; //栈指针加1
stack->s[stack->t] = x;//元素入栈
}
}
//出栈
void pop_seq(PSeqStack stack) {
//判断栈是否为空
if (stack->t == -1)cout << "Underflow!" << endl;
else {
stack->t -= 1;
}
}
//取栈顶元素
DataType top_seq(PSeqStack stack) {
if (stack->t == -1) {
cout << "Underflow!" << endl;//判断栈是否为空
}
else return (stack->s[stack->t]);
}
#endif
09-15