一、基本要求
用下述三条具体规则)实现。设大写字母表示魔王语言的词汇;小写字母表示人的语言词汇;希腊字母表示可以用大写字母或小写字母代换的变量。魔王语言可含人的词汇。
(1)A→sae (A的规则可以自己定义,比如A→abc)
(2)B→tAdA (B的规则也可以自己定义哈)
(3)(θδ1δ2...δn)→θδnδn-1...θδ1θ
二、实现提示
将魔王的语言自右至左进栈,总是处理栈顶字符。若是开括号,则逐一出栈,将字母顺序入队列,直至闭括号出栈,并按规则要求逐一出队列再处理后入栈。其他情形较简单,请读者思考应如何处理。应首先实现栈和队列的基本操作。
三.测试数据
B(ehnxgz)B解释成
tsaedsaeezegexenehetsaedsae
代码如下:
测试数据:
输入A规则:
sae#
输入B规则:
tAdA#
输入魔王说的话:
B(ehnxgz)B#
tsaedsaeezegexenehetsaedsae