)运算符“”进OPS栈,读出操作数C进OVS栈,读出运算符“”进OPS栈,
读出左括号“(”进OPS栈,读出操作数E进OVS栈,读出运算符“”进OPS栈,读出操
作数F进OVS栈,如图22(h)所示。
(9)读出右括号“)”,由于右括号“)”的优先级不大于OPS栈栈顶运算符“”的优
先级,因此从OVS栈依次弹出操作数F与E,从OPS栈弹出运算符“”,然后作运算T4EF,并将运算结果T4压入OVS栈,如图22(i)所示。在这种情况下,刚读出的右括号“)”下次将重新考虑。
(10)右括号“)”遇到OPS栈中的左括号“(”,从OPS栈中退出左括号“(”,如图
22(j)所示。
(11)读出运算符“;”,由于运算符“;”的优先级不大于OPS栈栈顶运算符“”的
优先级,因此从OVS栈依次弹出操作数T4与C,从OPS栈弹出运算符“”,然后作运算
T5CT4,并将运算结果T5压入OVS栈,如图22(k)所示。在这种情况下,刚读出的运
算符“;”下次将重新考虑。
(12)运算符“;”的优先级不大于OPS栈站顶运算符“”的优先级,因此从OVS栈
依次弹出操作数T5与T3,从OPS栈弹出运算符“”,然后作运算T6T3T5,并将运算结
果T6压入OVS栈,如图22(1)所示。在这种情况下,运算符“;”下次将重新考虑。
(13)运算符“;”与OPS栈栈顶的运算符“;”(它们都是表达式结束符)相遇,弹出
OVS栈中的T8即为表达式的计算结果,计算过程结束。
215用三列二维数组表示下列稀疏矩阵(假设数组下标从1开始):
(1)(1)
00000500
00000000
150000080
00006000
A
00000000
000130200
017000000
f00000004
(2)
003500
000023
170000
A00000
0210120
00000
900015
解:对应的3列二维数组分别为
888
7
165
1
3115
2
378
3
(1)B456
(2)B5
6413
5
662
7
7217
7
884
5733552311722141219515
216下列各三列二维数组分别表示一个稀疏矩阵,试分别写出与它们对应的稀疏矩阵(假设数组下标从1开始):
646
124
465
1361213]
1362151]
315
224
338
318
549
449
解:对应的稀疏矩阵分别为
0460
006010
3000
040000
(1)A5080]
2A800000]
0000
000900
0009
0000
217试写出题215中两个稀疏矩阵的POS与NUM向量。
解:对应的POS与NUM向量分别为(1)
k
1
2
3
4
5
6
POSk
1
3
4
6
6
7
NUMk2
1
2
0
1
0
f2
K
1
2
3
4
POSk
1
3
4
5
NUMk
2
1
1
1
219将下列表达式用表达式树表示,再分别转化成二叉树,最后分r