题目
(10)设计一个判别表达式中左、右括号是否配对出现的算法,采用()数据结构最佳。A线性表[1]的顺序存储[2]B队列C线性表的链式存储[3]D.栈
(10)设计一个判别表达式中左、右括号是否配对出现的算法,采用()数据结构最佳。
A线性表[1]的顺序存储[2]
B队列
C线性表的链式存储[3]
D.栈
题目解答
答案
答案是D.栈。
具体的算法如下:
初始化一个空栈[5]。
遍历表达式的每一个字符:
a. 如果字符是左括号,就把它压入栈中。
b. 如果字符是右括号:
i. 检查栈是否为空。如果为空,则说明右括号没有与之匹配的左括号,返回不匹配。
ii. 否则,从栈中弹出一个字符,期望这个字符是左括号。
遍历完成后,检查栈是否为空。如果不为空,则说明有左括号没有与之匹配的右括号,返回不匹配;否则,返回匹配成功。
使用栈数据结构,这个算法不仅简洁高效,而且直观易于理解。