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)

  • 相关阅读:
    【转】web测试容易被遗忘的地方
    212
    将博客搬至CSDN
    关于Navicat连接虚拟机windows virsual pc 的mysql
    Java匿名内部类继承类和实现接口
    [转]文本输入框特效大集合
    jquery操作select
    HashMap和Hashtable的区别
    Struts2+Spring+hibernate最新版本官方下载地址
    Java
  • 原文地址:https://www.cnblogs.com/guoshiyv/p/7071880.html
Copyright © 2011-2022 走看看