zoukankan      html  css  js  c++  java
  • 数据结构与算法2-3 线性顺序堆栈

    单个数组堆栈

    • 典型结构:

      LIFO last in first out (先进后出,后进先出)


    • 后缀表达式:

      1. 后缀表达式,符号在数值之后,方便计算运行,看到符号就可以进行计算了。

      2. 将所有计算顺序按照括号括号之后,再把符号放到同级括号之后

        ​ 例: ab-c/d=((ab)-(c/d))=ab*cd/-

        2.1 堆栈计算过程,首先遇到ab,存入栈中,然后遇到了,计算出a*b,存入堆栈,

        2.2 然后遇到c,d,存入栈中,遇到/,计算出c/d,存入堆栈

        2.3 最后堆栈中只有两个值a*b,c/d,然后遇到符号完成ab-c/d



    单个数组的顺序存储堆栈代码如下:



    # 两个堆栈共有一个数组,分别从数组两边一起开始存放

    左边 -1表示空栈

    右边 max表示空栈,即下标超出了数组的上界

    满栈 左右两个堆栈都不用制定大小,只需共同占用整个数组即为满栈,即两堆栈的top相遇。



    代码如下: ![](http://images2015.cnblogs.com/blog/1175415/201706/1175415-20170623223339460-494555403.png) ![](http://images2015.cnblogs.com/blog/1175415/201706/1175415-20170623223346304-1478419886.png)

  • 相关阅读:
    [极客大挑战 2019]EasySQL
    BUUCTF-[强网杯 2019]随便注-wp
    BUUCTF-[HCTF 2018]WarmUp-wp
    wp-2017ssrfme
    < 算法笔记(晴神宝典)
    < python音频库:Windows下pydub安装配置、过程出现的问题及常用API >
    < JAVA
    < 博客园自定义皮肤装饰代码
    <编译原理
    < AlexNet
  • 原文地址:https://www.cnblogs.com/guoshiyv/p/7071880.html
Copyright © 2011-2022 走看看