栈的基本概念
廖家龙 用心听,不照做

栈(Stack)是只允许在一端进行插入或删除操作的线性表【空栈、栈顶:允许插入和删除的一端、栈底:不允许插入和删除的一端】

特点:后进先出【Last In First Out(LIFO)】

栈的基本操作:

  1. InitStack(&S):初始化栈,构造一个空栈S,分配内存空间

  2. DestroyStack(&L):销毁栈,销毁并释放栈S所占用的内存空间

  3. Push(&S,x):进栈,若栈S未满,则将x加入使之成为新栈顶

  4. Pop(&S,&x):出栈,若栈S非空,则弹出栈顶元素,并用x返回【删除栈顶元素】

  5. GetTop(S,&x):读栈顶元素,若栈S非空,则用x返回栈顶元素【不删除栈顶元素,查栈的使用场景中大多只访问栈顶元素】

  6. StackEmpty(S):判读一个栈S是否为空,若S为空,则返回true,否则返回false