栈
栈的定义
栈是一种只能在一段进行插入或删除操作的线性表
栈的结构及基本远算
栈空的条件:顶端==-1;
栈满的条件:顶端==MAXSIZE-1;
进栈操作:先将栈顶指针+1,然后存放;
出栈操作:先存放,再将栈顶指针-1;
栈的操作
typedef struct
{
ElemType data[MaxSize];
int top;
}Sqstack;
void InitStack(Sqstack*& s)
{
s = (Sqstack*)malloc(sizeof(Sqstack));
s->top = -1;
} //初始化栈
void DestroyStack(Sqstack*& s)
{
free(s);
} //销毁栈
bool StackEmpty(Sqstack* s)
{
return(s->top = -1);
}
//判断栈是否为空
bool Push(Sqstack*& s, ElemType e)
{
if (s->top == MaxSize - 1)
return false;
s->top++;
s->data[s->top] = e;
return true;
} //进栈
bool pop(Sqstack*& s, ElemType &e)
{
if (s->top == -1)
return false;
e = s->data[s->top];
s->top--;
return true;
} //出栈
bool GetTop(Sqstack* s, ElemType& e)
{
if (s->top == -1)
return false;
e = s->data[s->top];
return true;
} //取栈顶元素