文章目录 1.共享栈的定义2.初始化共享栈3.判断栈满4.判断栈空全部代码 1.共享栈的定义 typedef struct { ElemType data[Maxsize]; //静态数组存放栈中元素 int ltop; //栈顶指针(指向栈的底部) int htop; //栈顶指针(指向栈的顶部) }ShStack; 2.初始化共享栈 /*初始化共享栈*/ void InitStack(ShStack& S) { for (int i = 0; i < Maxsize; i++) S.data[i] = 0; S.ltop = -1; //初始化栈顶指针 S.htop = Maxsize; } 3.判断栈满 /*判断共享栈是否满*/ Status Full(ShStack S) { if (S.ltop + 1 == S.htop) return true; else false; } 4.判断栈空 /*判断共享栈是否空*/ Status Empty(ShStack S) { if (S.ltop == -1 && S.htop == Maxsize) return true; else false; } 全部代码 /*简单的共享栈定义 Shared stack*/ //共享栈是指两个栈共享同一片区域 #include<stdio.h> #include<stdlib.h> #define Maxsize 20 //定义共享栈中元素的最大个数 typedef int ElemType; typedef bool Status; typedef struct { ElemType data[Maxsize]; //静态数组存放栈中元素 int ltop; //栈顶指针(指向栈的底部) int htop; //栈顶指针(指向栈的顶部) }ShStack; /*初始化共享栈*/ void InitStack(ShStack& S) { for (int i = 0; i < Maxsize; i++) S.data[i] = 0; S.ltop = -1; //初始化栈顶指针 S.htop = Maxsize; } /*判断共享栈是否满*/ Status Full(ShStack S) { if (S.ltop + 1 == S.htop) return true; else false; } /*判断共享栈是否空*/ Status Empty(ShStack S) { if (S.ltop == -1 && S.htop == Maxsize) return true; else false; }