详细设计说明书
1.本程序需要的全程量
#define stack_init_size 100 //栈存储空间初始分配量
#define stackincrement 10 //栈存储空间分配增量
2.栈类型
typedef struct
{
char *base; //栈底指针
char *top; //栈底指针
int stacksize; //栈容量
}stack; //栈类型
栈的基本操作设置如下:
int InitStack(stack &s)
//初始化,构造一个空栈 s。如构造成功则返回 0,失败返回-1。
void DestroyStack(stack &s)
//销毁栈 s
bool isEmpty(stack &s)
//若栈 s 为空栈,则返回 true,否则返回 false。
int Push(stack &s,char c)
//插入元素 c 为新的栈顶元素。
int Pop(stack &s)
//若栈不空,则删除 s 的栈顶元素,返回 0;否则返回-1。
其中部分操作的算法
int Push(stack &s,char c)
{
//若分配空间成功,则在 s 的栈顶插入新的栈顶元素 c,并返回 0,表示插入成功;
//否则,栈不变,返回 0,表示插入失败
*s.top++ = c;
return 0;
}
int Pop(stack &s)
{
//若栈不空,则删除栈顶元素,且返回 0,表示删除成功;
//否则,返回-1。
if(s.top==s.base)
return -1;
--s.top;
return 0;
}