线性表是具有相同数据类型的n(n>=0)个数据元素的有限序列,其中n为表长,当n=0时线性表是一个空表。若用L命名线性表,则其一般表示为L=(a1,a2,.......ai,ai+1,....an)
栈(stack)是只允许在一端进行插入或删除操作的线性表,逻辑结构:与普通线性表相同 数据的运算:插入,删除操作有区别(栈的插入和删除只能在栈顶进行)
栈顶:允许插入和删除的一端
栈底:不允许插入和删除的一端
特点:后进先出(last in first out LIFO)
当栈中没有元素时候称为空栈
栈的基本操作:
1.创,销:
lnitStack(&S):初始化栈。构造一个空栈s,分配内存空间。
DestroyStack(&L):销毁栈。销毁并释放栈s所占用的内存空间。
2.增删:
Push(&S,x):进栈,若栈S未满,则将x加入使之成为新栈顶。
Pop(&S,&x):出栈,若栈s非空,则弹出栈顶元素,并用x返回(删除栈顶元素,找出并删除)
3.查:
GetTop(S, &x):读栈顶元素。若栈s非空,则用×返回栈顶元素(找出不删除)
其他常用操作:
StackEmpty(S):判断一个栈s是否为空。若s为空,则返回true,否则返回false。