//顺序栈的存储结构
#define MXASIZE 100
typedef struct
{
SElemtype *base;//栈底指针
SElemtype *top;//栈顶指针
int stacksize;//栈可用最大容量
} Stack;
//初始化 顺序栈
status Initstack(Stack &S)
{
S.base=new SElentype[MAXSIZE];
if(!s.base)//存储分配失败
exit(OVERFLOW);
S.top=S.base;//空栈
S.stacksize=MAXSIZE;
return ok;
}
//入栈,新元素压入栈顶,栈顶指针加一
status Push(Stack &S,Elemtype e)
{
if(S.top-S.base==S.MAXSIZE) //栈已满
return error;
S.top++;
S.ST[top]=e;
return ok;
}
//出栈
status Pop(Stack &s,Elemtype)
{
if(S.top==S.base)//栈为空
return error;
e=S.ST[S.top];
S.top--;
return ok;
}
//取栈顶元素
status Gettop(Stack S)
{
if(S.top!=S.base)//栈非空
return *(S.top-1);
}
顺序栈结构、初始化、入栈、出栈和取栈
最新推荐文章于 2024-11-14 17:58:10 发布