顺序栈

xiaoxiao2021-02-28  76

#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)。栈也称为后进先出表。
转载请注明原文地址: https://www.6miu.com/read-71106.html

最新回复(0)