B +,!5J5C
14=D14
E414=D1
*+H5804A5C
7559 .19
I
*+H14=D804A1C
.019 8559
I
I
答:该算法的功能是:利用堆栈做辅助,将队列中的数据元素进行逆置。
六、算法设计(每小题 5 分,共 15 分。至少要写出思路)
【李春葆及严题集 !④】假设一个算术表达式中包含圆括弧、方括弧和花括弧三种类型的括弧,编
写一个判别表达式中括弧是否正确配对的函数 ==4'094,;其中:'0 为字符串类型的变量(可
理解为每个字符占用一个数组元素),表示被判别的表达式,4, 为布尔型变量。
答:用堆栈 4 进行判定,将、或C入栈,当遇到I、或时,检查当前栈顶元素是否是对应的、
或C,若是则退栈,否则返回表示不配对。当整个算术表达式检查完毕时,若栈为空表示括号正确配对,
否则不配对。
编程后的整个函数如下(李书 .!—!)
K ) 为算术表达式中最多字符个数)
==4'094,
='0
44,
C=4
4409
4,
*+JJ4,
C'0LLMM'0GLMM'0GCL))遇到‘L、’L或’CL,则将其入栈)
C40
440'0
I
'0GG)遇到’G,若栈顶是‘L,则继续处理,否则以不配对返回)
440LL40((
+4,
'0GG)遇到’G,若栈顶是‘L,则继续处理,否则以不配对返回)
440LL40((
+4,
'0GG)遇到’IG,若栈顶是‘CL,则继续处理,否则以不配对返回)
440LCL40((
+4,
I
4034,)若栈不空,则不配对)
I
严题集对应答案:
!
144++=D4N24=4))判别表达式中三种括号是否匹配
C
E414=D
0400
C