大话数据结构 -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)

如果栈的使用过程中元素变化不可预料,有时很小,有时非常大,那么最好使用链栈。反之,如果它的变化在可控范围内,建议使用顺序栈会更好一些。

 

posted @ 2018-11-23 20:22  GuoXinxin  阅读(177)  评论(0编辑  收藏  举报