数据结构 括号排序
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
pos = 1
1
pos = 0
( [
0
A×[ (B-C) + (D-E) ] / (F + G) × - -
2
pos = 1
1
pos = 0
( [
0
A×[ (B-C) + (D-E) ] / (F + G) × - -
2 1
pos = 0
0
pos = 1
[
A×[ (B-C) + (D-E) ] / (F + G) × - -
借助于数组顺序处理表达式 中的每个括号,遇到左括号依 次存入数组,遇到右括号,则 与数组最上部的左括号匹配, 如果发现括号匹配错误,则终 止检测过程。如果匹配成功, 则将顶部的左括号移走。继续 往下…,一直到最后一个括号
2 1 0
pos = 1
A×[ (B-C) + (D-E) ] / (F + G) × - -
2 1 0 pos = 1 pos = 0
2 1 0
[
A×[ (B-C) + (D-E) ] / (F + G) × - -
2
pos = 1
1
pos = 0
( [
0
A×[ (B-C) + (D-E) ] / (F + G) × - -
2
pos = 1
1
pos = 0
( [
0
A×[ (B-C) + (D-E) ] / (F + G) × - -
2 1
pos = 0
0
(
pos = 1
A×[ (B-C) + (D-E) ] / (F + G) × - -
3 2
pos = 0 1(Fra bibliotekpos = 1
总 结
• 括号匹配处理中,将左括号依次存入数组, 每次存进去的左括号都是在数组的最上部, 一旦遇到左右括号匹配 左右括号匹配,将数组最上部的 左右括号匹配 左括号移走; • 将存入数组的左括号视为线性表,上述的 存入与移走对应线性表的插入和删除; • 与第二章讲述的线性表的插入与删除的唯 一区别在于这种插入与删除只能在线性表 的表尾做。
一直到最后一个括号pos括号匹配处理中将左括号依次存入数组每次存进去的左括号都是在数组的最上部一旦遇到左右括号匹配将数组最上部的左括号移走
计算表达式括号匹配问题
假定表达式中只包含两种括号[ ]、(),例如表 达式:A×[ (B-C) + (D-E) ] / (F + G)
A×[ (B-C) + (D-E) ] / (F + G) × - - 解题思路: 解题思路: