美文网首页
数据结构_栈

数据结构_栈

作者: 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/+

相关文章

  • 栈和队列

    1、栈 栈是一种先进先出的数据结构。栈顶进栈,栈顶出栈。 数据结构 栈的初始化 进栈 出栈 栈的最小值 2、队列 ...

  • 004 go语言实现栈

    1 数据结构 数据结构: 要实现的功能:0 栈的初始化1 获取栈长度2 入栈3 出栈4 清空栈内容5 判断栈是否为...

  • java高级知识点

    1.数据结构 程序=数据结构+算法 栈:后进先出,线性结构 入栈:push 出栈:pop假如已知入栈顺序是ab...

  • 栈和堆以及栈区和堆区的区别

    栈和堆以及栈区和堆区的区别 数据结构中的栈和堆 栈:具有先进后出性质的数据结构 堆:一种经过排序的树形数据结构,节...

  • 数据结构与算法 第二节:栈 栈: 一种先进后出的数据结构。可以想象成手枪的弹夹。 栈的特点: 栈的行为: 栈的代...

  • 2019-07-11—栈

    栈:Java数据结构和算法(四)——栈 string和char一般这么转化: 21、定义栈的数据结构,请在该类型中...

  • 什么是堆栈?

    堆与栈是两种数据结构,并不是一种数据结构,堆是堆,栈是栈。 1、栈:是一种只能在一端进行插入和删除的数据结构。 允...

  • 05--栈 递归

    栈 栈(Stack)又名堆栈,它是一种重要的数据结构。从数据结构角度看,栈也是线性表,其特殊性在于栈的基本操作是线...

  • 18-04-21 python3 算法笔记 002基本数据结构

    线性数据结构 栈,队列,deques,列表其元素在数据结构中的位置由它被添加时的顺序决定。 栈 后进先出栈 LI...

  • 数据结构

    数据结构:要写!!手动!!数据结构非常简洁才可 栈 eg. 弹栈压栈的过程 链表 就是原型链不断的连接,要断去某个...

网友评论

      本文标题:数据结构_栈

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