以下是引用shiqi6767在2011-1-28 22:34:14的发言:
请问,为什么要定义栈?定义栈有什么好处?
(貌似大部分都没明白我的意思!
真正的意思是----为什么要创造一个先进后出的栈?????????这样创造有什么好处!
堆栈的最重要的特点其实就是具有“记忆”性。至于这样有什么好处,可不是用一两句话就能说得清楚的。下面我给一个例子,大致说明堆栈的记忆特点:表达式的处理。请问,为什么要定义栈?定义栈有什么好处?
(貌似大部分都没明白我的意思!
真正的意思是----为什么要创造一个先进后出的栈?????????这样创造有什么好处!
所谓表达式的处理,其实就是:“接受用户所写的一串字符串,其实是一个表达式,由数、运算符(包含括号)组成,要求计算这个表达式的结果”。例如,输入为
3+5*4^1(3加5乘以4的1次方)
计算结果应该是23(地球人都知道),但是这是计算机程序的处理结果,包括要发现可能性的输入错误。
这里牵扯所谓的运算优先级的问题,而能让先出现的优先级较低的运算符,能在“以后”运算,就得靠栈。
比如上例,如果用栈处理运算符,那么初始栈为空,然后先遇到“+”,入栈后,“+”在栈底;
当遇到“*”时,再入栈,那么栈底为“+”,栈顶为“*”,以后出栈的顺序就是先“*”后“+”,即先做乘法,再做加法。
这只是一个简单的说法,表达式的处理远比这复杂,但方法的核心就是“堆栈”。
大概明吧了吧,路漫漫其修远兮!尔会上下而求索乎?
[ 本帖最后由 犬虫门心 于 2011-1-29 20:19 编辑 ]
当一名对得起学生学费的老师,一直是我的目标!我会更努力的!