大话数据结构 -04-1 栈
一、栈
1. 定义


栈元素具有线性关系,即前驱后继关系。是一种特殊的线性表。
栈的插入操作,叫作进栈,也称压栈、入栈。 栈的删除操作,叫做出栈,也有的叫作弹栈。
注意:最先进栈的元素不一定最后出栈。如三个整型元素1,2,3。

2. 抽象数据类型

同线性表一样,有顺序存储与链式存储。
3. 栈的顺序存储结构


「1」进栈(判断栈是否满)时间复杂读为O(1)

「2」出栈(判断栈是否为空)时间复杂读为O(1)

「3」两栈共享空间








空间结构

push方法:(除了要插入的元素值参数外,还有一个判断书stack1还是stack2的栈号参数stackNumber)


pop方法:(判断栈是否非空)

4. 栈的链式存储结构
把栈顶放在单链表的头部 (头指针此时为top指针)


链栈的结构:

定义了结点类型,及栈的top指针和栈的元素数count。(放在两个结构里!!!)
进栈操作:


出栈操作:

链栈的进栈与出栈时间复杂度均为O(1)
如果栈的使用过程中元素变化不可预料,有时很小,有时非常大,那么最好使用链栈。反之,如果它的变化在可控范围内,建议使用顺序栈会更好一些。

浙公网安备 33010602011771号