数据结构---栈的应用
来源:互联网 发布:软件产品质量控制 编辑:程序博客网 时间:2024/05/29 02:47
递归:
举例:斐波那契数列
数字1,1,2,3,5,8,13,21,34。。。
特点:前面相邻两项之和,构成了后一项
n=0时,F(n)=0
n=1时,F(n)=1
n>1时,F(n)=F(n-1)+F(n-2)
递归函数:
首次调用的函数压栈,直至压完所有函数,最后进行函数弹栈处理
int Fbi(int i){ if(I < 2) { return i == 0 ? 0 : 1; } return Fbi(i-1) + Fbi(i-2);}
四则运算表达式求值:
逆波兰:一种不需要括号的后缀表达式
例子:
普通表示(中缀表达式):9+(3-1)*3+10/2
后缀表达式:9 3 1 - 3 * + 10 2 / +
计算机处理后缀表达式的过程:
从左到右依次遍历表达式的每个数字和符号,遇到数字就进栈,遇到是符号,就将处于栈顶的两个数字出栈,进行运算,将运算结果进栈,一直到最终获得结果。
中缀表达式转为后缀表达式的过程:
从左到右遍历中缀表达式的每个数组和符号,若是数字就输出,即成为后缀表达式的一部分;若是符号,则判断其与栈顶符号的优先级,是右括号或优先级不高于栈顶符号(乘除优先加减)则栈顶元素依次出栈并输出,并将当前符号进栈,一直到最终输出后缀表达式为止。
如上例:
从左到右遍历,
9输出,9
+进栈,
(进栈,
3输出,9 3
-进栈,
1输出,9 3 1
后面是)匹配前面的(,栈顶依次出栈并输出,知道(出栈为止,输出-,9 3 1 -
*优先级高于栈顶+,进栈
3输出,9 3 1 - 3
+优先级低于栈顶,因为栈内元素优先级都不低于+,所以全都出栈输出,然后将当前+入栈,9 3 1 - 3 +
10输出,9 3 1 - 3 * + 10
/进栈,
2输出,9 3 1 - 3 * + 10 2
已到最后全都出栈输出 9 3 1 - 3 * + 10 2 / +
- 数据结构栈的应用
- 数据结构--栈的应用
- 数据结构---栈的应用
- 数据结构-栈的应用
- 数据结构之栈的应用
- 数据结构—栈的应用
- 数据结构之 栈的应用
- 数据结构 栈的应用 -- 迷宫的实现
- 数据结构-栈的应用-符号的匹配
- 数据结构(二)--栈的应用(数制转换器)
- 数据结构栈的应用之括号匹配
- 数据结构学习笔记 --- 栈的应用举例
- 数据结构 栈的应用-- 表达式求值
- 数据结构之栈的应用----迷宫求解
- 数据结构----栈和队列的综合应用
- 数据结构试验-栈的实现及其应用
- 【数据结构】栈的应用 I :表达式求值
- 数据结构之 栈的应用 括号匹配
- JDBC
- squid安装使用
- Atitit 图像处理Depixelizing Pixel Art像素风格画的矢量化
- 不用第三个变量交换两个变量
- 华东交通大学2016届新生选拔赛:1010 我是签到题
- 数据结构---栈的应用
- 对”对象和类“的理解
- hibernate配置报错
- 第十六周项目一验证算法(3)直接选择排序
- Cannot change version of project facet Dynamic web
- ubuntu 龙芯 qt 交叉编译
- Stm32库函数里的断言机制解析
- ZCMU—1125
- Open Source Trading Platforms (Master List)