http://bbs.freekaoyan.com/viewthread.php?tid=310678
题目: 若一个栈以向量V[1..n]存储,初始栈顶指针top为n 1,则下面x进栈的正确操作是( )。
A.top:=top 1; V [top]:=x B. V [top]:=x; top:=top 1
C. top:=top-1; V [top]:=x D. V [top]:=x; top:=top-1
给出的答案是C,我不能理解希望有哪位高手指点下,小弟在这先谢过了啊
还有一题
题目: 表达式3* 2^(4 2*2-6*3)-5求值过程中当扫描到6时,对象栈和算符栈为( ),其中^为乘幂 。
A. 3,2,4,1,1;(*^( *- B. 3,2,8;(*^- C. 3,2,4,2,2;(*^(- D. 3,2,8;(*^(-
答案是D.
期待中。。。
---------------------------------
第一题是因为,你看反了吧,它是倒着来的,从N那头当作栈底。所以每进栈一个元素,当然是减1
第二题没看懂呢,()是什么意思?
---------------------------------
()的意思是在那填你选择的答案啊。。。
---------------------------------
第一个如果是栈顶指针的话.那该加一吧,好象按你的题的意思,出栈才减1,同时是不是到达栈底.
第二个你要使用的是中缀表达式,还是前缀或者后缀?
---------------------------------
第一题的题目的意思好像是倒过来存储,可是具体实现方面我实在还是想不通,第二题就是很两个栈分别存储数字和符号的啊,数字栈我能想得通,关键是符号栈,里面剩余的符号我想不明白
---------------------------------
第二题我明白了,栈的应用处有个符号匹配检验,现在进栈一个左括号了,而6时还没到右括号,所以左括号之后的符号不出栈,要不然就出栈了,(出栈是证明里面的运算过了)我这么说估计你看不懂,你看下书就明白了,第一题就是按我之前说道的就行了。
---------------------------------
引用:原帖由 lingjiayan 于 2008-9-12 14:08 发表

第一题的题目的意思好像是倒过来存储,可是具体实现方面我实在还是想不通,第二题就是很两个栈分别存储数字和符号的啊,数字栈我能想得通,关键是符号栈,里面剩余的符号我想不明白
第一题他给你分配了一个空间啊,然后栈底的名字就叫N你就这么理解就行了,然后,为了把数存到那个空间里,你只能倒着来啊,下一个位置就是N-1所以喽!
