问答题
[说明]
[算法4-1]的功能是:用来检查文本文件中的圆括号是否匹配。若文件中存在圆括号没有对应的左括号或者右括号,则给出相应的提示信息,如图4-18所示。

在[算法4-1]中,stack为一整数栈。算法中各函数的说明如表4-16所示。
表4-16 各函数的功能说明表
函数名 |
函数功能 |
push (int i) |
将整数i压入栈stack中 |
pop () |
stack的栈顶元素出栈 |
empty ( ) |
判断stack栈是否为空.若为空,函数返回1,否则函数返回0 |
nextch ( ) |
读取文本文件中的下一个字符,并返回该字符的ASCII值,将字符所在的行号以及字符在行中的位置分别存储到变量row和col中,若遇到文件结束符,则将变量EOF置为true |
kind (charch) |
判断字符ch是左括号还是右括号,若是左括号,函数返回1;若是右括号,函数返回2;若两者都不是,函数返回0 |
|
[算法4-1] 将栈stack置空,置EOF为false

为了识别更多种类的括号,对[算法4-1]加以改进后得到[算法4-2]。[算法4-2]能够识别圆括号、方括号和花括号(不同类型的括号不能互相匹配)。改进后,函数kind(charch)的参数及其对应的返回值如表4-17所示。
表4-17 函数Kind(charch)的参数及其对应的返回值
ch |
( |
) |
{ |
} |
[ |
] |
其他 |
返回值 |
1 |
2 |
3 |
4 |
5 |
6 |
0 |
|
[算法4-2]

[问题1]
请将[算法4-1]和[算法4-2]中,(1)~(7)空缺处的内容补充完整。
[问题2]
请从以下选项中选择相应的判断逻辑填补[算法4-2]中的“判断条件1”至“判断条件3”。注意,若“判断条件2”的逻辑判断结果为假,就无需对“判断条件3”进行判断。
判断条件1:
(8) 判断条件2:
(9) 判断条件3:
(10) [供选择的答案]
A.栈顶元素表示的是与当前字符匹配的左括号
B.栈顶元素表示的是与当前字符匹配的右括号
C.字符是左括号 D.字符是右括号 E.栈不空 F.栈空
G.字符是括号
【参考答案】
这是一道要求读者用创建Thread类的子类的方法实现多线程的编程题。本题的解答思路如下。 通常把限定只能在一端进行插入和......
(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)