数据结构基础之栈的实际应用
作者:本站整理 时间:2015-06-11
一、栈应用之一:数制转换
将十进制数转换成其它进制的数有一种简单的方法:
例:十进制转换成八进制:(66)10=(102)8
66/8=8 余 2
8/8=1 余 0
1/8=0 余 1
结果为余数的逆序:102 。先求得的余数在写出结果时最后写出,最后求出的余数最先写出,符合栈的先入后出性质,故可用栈来实现数制转换:
void conversion() { |
请看:数制转换的C源程序
二、栈应用之二:行编辑
一个简单的行编辑程序的功能是:接受用户从终端输入的程序或数据,并存入用户的数据区。允许用户输入出错时可以及时更正。可以约定#为退格符,以表示前一个字符无效,@为退行符,表示当前行所有字符均无效。
例:在终端上用户输入为
whli##ilr#e(s#*s) 应为
while(*s)
void LineEdit() { |
请看:行编辑的C源程序
三、栈应用之三:表达式求值
一个程序设计语言应该允许设计者根据需要用表达式描述计算过程,编译器则应该能分析表达式并计算出结果。表达式的要素是运算符、操作数、界定符、算符优先级关系。例:1+2*3有+,*两个运算符,*的优先级高,1,2,3是操作数。 界定符有括号和表达式结束符等。
算法基本思想:
1首先置操作数栈为空栈,表达式起始符#为运算符栈的栈底元素;
2依次讲稿表达式中每个字符,若是操作数则进OPND栈,若是运算符,则和OPTR栈的栈顶运算符比较优先权后作相应操作,直至整个表达式求值完毕。
char EvaluateExpression() { |
请看:表达式求值的C源程序
四、总结
栈的先进后出、后进先出的特性。
相关文章
相关推荐
-
office2003 2007 2010兼容包免费版
-
飞信2015 5.6.1800 和沟通版(网络聊天工具)
-
Windows7简易优化工具V1.01绿色版(Windows7 Master)
-
屏幕录像专家2016绿色便携版 v0218
-
新浪页游助手官方版 V2.2.7
-
奔牛股票分析软件官方版 v7.0
-
KCleaner绿色版 v3.2.0.87
-
超级无敌qq七雄争霸助手官方版 v2016.9.29
-
优酷iDo(视频制作软件) V1.2.1.1155官方版
-
IsMyLcdOK x64绿色版 V2.74
-
软媒时间官方版 V3.17
-
360浏览器 8.1.1.116官方版(安全浏览器)
-
暴风云直播助手官方版 v1.3.1
-
ZBrush 4R7 Mac版 v4.7.4.6
-
道客巴巴官方版
-
CAD快速看图电脑版 v5.2.0.35