美文网首页
数据结构_栈

数据结构_栈

作者: arkulo | 来源:发表于2015-10-27 17:42 被阅读57次

    github地址:
    https://github.com/arkulo56/thought/blob/master/software/dataStruct/数据结构_栈.md

    https://raw.githubusercontent.com/arkulo56/thought/master/images/datastruct/stack.pnghttps://raw.githubusercontent.com/arkulo56/thought/master/images/datastruct/stack.png

    定义

    限定仅在表尾进行插入和删除操作的线性表

    也是线性表,一种特殊的线性表

    凡是那些需要临时保存前面数据元素的场景!访问轨迹、撤销命令、递归函数等等

    规则

    • 栈底的位置是永远不变的,栈顶执行一切操作
    • 顺序存储时,指针指向栈顶
    • 顺序存储时,栈的删除和添加都是在栈顶的,因此效率比普通的线性表高
    • 顺序存储时,两栈可以共享空间。就是一个大数组里面包含两个栈,栈顶相对
    • 链式存储时,第一个节点(不是头节点)就是栈顶,最后一个节点就是栈底

    操作

    入栈(栈顶)、出栈(栈顶)

    应用

    斐波那契数列 ----------------------------------

    公式:F(n) = F(n-1)+F(n-2)

    四则运算表达式(后缀表达式/逆波兰表达式) ---------------------------------------

    表达式:9+(3-1)*3+10/2 (这就是中缀表达式)第一个+记作+[1],第二个+记作+[2]

    后缀表达式:931-3*+[1]102/2+[2]

    编号 后缀表达式 运算符 说明
    1 9 +[1]
    2 93 +[1](
    3 931 +[1](-
    4 931- +[1] 反括号优先级
    5 931- +[1]* *号优先级高于+
    6 931-3 +[1]*
    7 931-3*+[1] +[2] +[2]的优先级小于等于原先的运算符
    8 931-3*+[1]10 +[2]
    9 931-3*+[1]10 +[2]/
    10 931-3*+[1]102 +[2]/
    11 931-3*+[1]102/+[2]

    最后得到逆波兰式:931-3*+102/+

    相关文章

      网友评论

          本文标题:数据结构_栈

          本文链接:https://www.haomeiwen.com/subject/bjvxhttx.html