#define MaxSize 10 //定义栈中元素的最大个数
//定义共享栈
typedef struct {
int data[MaxSize];
int top0;
int top1;
}ShStack;
//链栈的定义
typedef struct LinkNode {
int data;
struct LinkNode* next;
}*LiStack; //栈类型定义
//顺序栈的定义
typedef struct {
int data[MaxSize]; //静态数组存放栈中元素
int top; //栈顶指针
}SqStack;
//初始化栈
void InitStack(SqStack& S) {
S.top = -1; //初始化栈顶指针
}
//初始化共享栈栈
void InitStack(ShStack& S) {
S.top0 = -1; //初始化栈顶指针
S.top1 = MaxSize;
}
//判断是否栈空
bool IsEmpty(SqStack S) {
return (S.top == -1);
}
//进栈操作
bool Push(SqStack& S, int e) {
if (S.top == MaxSize - 1) return false; //判断是否栈满
S.top = S.top + 1; //栈顶指针++
S.data[S.top] = e; //新元素入栈
//S.data[++S.top] = e;
return true;
}
//初栈操作
bool Pop(SqStack& S, int& e) {
if (S.top == -1) return false;
e = S.data[S.top]; //栈顶元素先出栈
S.top = S.top - 1; //指针减一
//e = S.data[--S.top];
return true;
}
void testStack() {
SqStack S; //声明一个顺序栈
//顺序存储,给各个数据元素分配连续的存储空间大小为MasSize*sizeof(int)
}
栈的简单应用
最新推荐文章于 2024-08-23 11:07:46 发布