栈:一种特殊的线性表,只允许在固定的一端插入和删除元素。插入和删除数据。
操作的一端称为。栈顶。
,另一端称为。栈底。
。遵守栈中的数据元素。后进先出。
LIFO(Last In First Out)
的原则。
压栈。
:堆栈的插入操作称为堆栈/堆栈/堆栈,入数据在。栈顶。
。出栈。
:栈的删除操作叫做出栈。数据也在。栈顶。
。
通常可以使用数组或链表来实现,相对而言。实现更好的数组结构。
一些。因为数组在尾部。
插入数据的成本相对较小。为什么?听下面的分解。
改变栈顶和栈底的位置可以解决这个问题,下图:
单链表优于双向链表。
。接下来,我将实现最好的——>顺序栈。
会写顺序表那么顺序栈会很容易实现,这里就不一一介绍了,直接上代码。
typedef。int。STDataType。;typedef。struct。Stack。{ 。assert。(。pst。)。;return。pst。->top。;}。