栈定义
const int maxsize=6;
typedef struct seqstack
{
DataType data[maxsize];
int top;
}SeqStk;
基本运算
1 初始化
int InitStack(SeqStk *stk)
{
stk-top=0;
return 1;
}
2 判栈空
int EmptyStack(SeqStk *stk)
//若栈为空,则返回值1,否则返回值0
{
if (stk->top==0)
return 1;
else return 0;
}
3 进栈
int Push(SeqStk *stk,DataType x)
{//若栈未满,元素x进栈stk中,否则提示出错信息
if (stk-top == maxsize-1)
{
error("栈已满");
return 0;
}
else
{
stk->top++;
stk->data[stk-top]=x;
return 1;
}
}
4 出栈
int Pop(SeqStk *stk)
{
if (EmptyStack(stk))
{
error("下溢");
return 0;
}
else
{
stk-top--;
return 1;
}
}
5 取栈顶元素
DataType GetTop(SeqStk *stk)
{//取栈顶数据元素,栈顶数据元素通过参数返回
if (EmptyStack(stk))
return NULLData;
else
return stk->data[stk->top];
}