数据结构:栈

王争据结构笔记(08)

1、栈结构:后进者显出,先进者后出。栈是一种操作受限的线性表,只允许在一端插入和删除数据

2、栈主要包含的操作:入栈和出栈。

3、用数组实现的栈叫做顺序栈,用链表实现的栈叫做链式栈。

4、无论是链式栈还是顺序栈,入栈和出栈空间复杂度都是O(1),时间复杂度也是O(1)。

     动态扩容的顺序栈出栈时间复杂度为O(1)。当栈中存在空闲空间的时候,入栈操作的时间复杂度为O(1)。当空间不够时,需要重新申请内存和数据搬移,所以时间复杂度为O(n)。入栈操作的均摊时间复杂度为O(1)。

5、栈的实际医用:

    A) 栈在函数调用中的应用:内存被组织成栈的结构,存储函数调用时的临时变量。每进入一个函数就会将临时变量作为一个栈帧入栈,当被调用函数直线完成,返回后,将这个函数对应的栈帧出栈。

    B)栈在表达式求值中的应用:保存操作数的栈和保存运算符的栈。

    C)栈在括号匹配中的应用:从左到右扫描字符串,扫描到左括号的时候,将其压栈,扫描到右括号的时候,从栈顶将左括号取出。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值