#include "SqStack.h"
int InitStack (Stack *S)//置空栈
{
if (S == NULL)
{
return FALSE;
}
S->top = -1;
}
int StackEmpty (Stack *S)//判断栈是否为空,空返回真,不空返回假
{
if (S == NULL)
{
return FALSE;
}
return S->top == -1;
}
int StackFull (Stack *s)//判断栈是否满,满返回真,否则返回假
{
if (s == NULL)
{
return FALSE;
}
return s->top == (SIZE-1);
}
int Push (Stack *s, StackData x)//进栈
{
if (s == NULL)
{
return FALSE;
}
if (StackFull(s))//判断是否栈满
{
return FALSE;
}
s->data[top+1] = x;
s->top++;
return TRUE;
}
int Pop (Stack *s, StackData *x)//出栈
{
if (s == NULL)
{
return FALSE;
}
if (StackEmpty(s))//判断是否栈空
{
return FALSE;
}
*x = s->data[s->top];
s->top--;
return TRUE;
}
int GetTop (Stack *s, StackData *x)//取栈顶
{
if (s == NULL)
{
return FALSE;
}
if (StackEmpty(s))//判断是否为空
{
return FALSE;
}
*x = s->data[s->top];
return TRUE;
}
栈作为一种
数据结构,是一种只能在一端进行插入和删除操作的特殊
线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底
指针。
栈是允许在同一端进行插入和删除操作的特殊
线性表
。允许进行插入和删除操作的一端称为栈顶(top),另一端为栈底(bottom);栈底固定,而栈顶浮动;栈中元素个数为零时称为空栈。插入一般称为
进栈
(PUSH),删除则称为退栈(POP)。栈也称为后进先出表。