顺序栈

来源:互联网 发布:进化算法和遗传算法 编辑:程序博客网 时间:2024/04/26 17:04
#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)。栈也称为后进先出表。

原创粉丝点击