文件名称:魔王语言.zip
文件大小:18KB
文件格式:ZIP
更新时间:2022-11-20 08:46:09
codeblocks
[ 问题描述 ] 有一个魔王总是使用自己的一种非常精炼而抽象的语言讲话,没有人能听 懂。但他的语言是可以逐步解释成人能懂的语言的,因为他的语言是由以下两 种形式的规则由人的语言逐步抽象上去的: (1) α→β1…βm (2) (θδ1…δn) →θδnθδn-1…θδ1θ 在这两种形式中,从左到右均表示解释;从右到左均表示抽象。试写一个魔 王语言的解释系统,把他的话解释成人能听得懂的话。 [ 基本要求 ] 用下述两条具体规则和上述规则形式(2)实现。 设大写字母表示魔王语言解 释的词汇, 小写字母表示人的语言的词汇;希腊字母表示可以用大写或小写字母 代换的变量。 魔王语言可含人的词汇。 (1).Β→ tΑdΑ (2).Α→ sae [ 测试数据 ] B(einxgz)B 解释成 tsaedsaeezegexeneietsaedsae 若将小写字母与汉字建立下表所示的对应关系, 则魔王说的话是: " 天上一个 《数据结构》题集 14 鹅地上一个鹅鹅追鹅赶鹅下鹅蛋鹅恨鹅天上一个鹅地上一个鹅。" t d s a e z g x n i 天 地 上 一个 鹅 追 赶 下 蛋 恨 [ 实现提示 ] 将魔王的语言自右至左进栈,总是处理栈顶。若是开括号,则逐一出栈, 将字母顺序入队列,直至闭括号出栈,并按规则要求逐一出队列再处理后入 栈。其他情形较简单,请读者思考应如何处理。应首先实现栈和队列的基本运 算。 [ 选作内容 ] (1).由于问题的特殊性, 可以实现栈和队列的顺序存储空间共享。 (2).在程序开始运行时读入一组第一种形式的规则, 而不是把规则定死在程序 中。 (第二种形式的规则只能定死在程序中)
【文件预览】:
魔王语言
----bin()
--------Debug()
----魔王语言.layout(359B)
----main.c(4KB)
----obj()
--------Debug()
----魔王语言.cbp(1KB)
----魔王语言.depend(144B)