C语言数据结构大作业之魔王语言答案

《魔王语言》实验报告

一、

【问题描述】:

有一个魔王总是使用自己的一种非常精炼而抽象的语言讲话,没人能听得懂,但他的语言总是可以解释成人能听得懂的语言,因为他的语言是以下两种规则逐步抽象上去的:

(1)α(1)αβ1β2…βm

(2)(θδ1δ2…δn)θδnδn-1…θδ1θ

在这两种形式中,从左到右均表示解释。试写一个魔王语言折解释系统,把他的话解释成人能听得懂的话。

基本要求:用下述两条规则实现。设大写字母表示魔王语言的词汇;小写字母表示人的语言词汇;希腊字母表示可以用大写字母或小写字母代替的变量。魔王语言可含人的词汇。

(1)B→tAdA

(2)A→sae

【基本要求】

用下列两条具体规则和上述规则形式(2)实现。设大写字母表示魔王语言,小写字母表示人的语言词汇,希腊字母表示可以用大写字母或小写字母代替的变量。魔王语言可包含人的词汇,

例如:

(1)B→tAdA

(2)A→sae

【选做内容】

代换变量的数目不限,则在程序开始运行时首先读入一组第一种形式的规则,而不是吧规则固定在程序中(第二种规则只能固定在程序中)。

二、程序设计的基本思想,原理和算法描述:

(1)以一维数组lan[ i ]表示魔王语言.

(2)魔王语言由用户输入,初始保存在M[ i ]中.

(3)魔王语言与人类语言对应关系固化在程序中.

(4)实现过程:

A:初始,魔王语言接收后存放在M[ i ]中.

B:初次遍历数组,将数组中括号内的元素入栈,同时插入相应首字母; C:再次遍历数组,将数组元素依次入队。(小写字母直接入队;大写字母经翻译成相应字符后入队;遇到括号,将栈中保存的元素依次出栈入队)在翻译过程中,如果依旧包含大写字母,则置flag为1,否则为0。

D:将队列中元素赋值给M[ i ]。如果此时flag=1,则再次重复C过程。直至所有元素为人类语言。

1:设定栈的抽象数据类型定义:

ADT stack{

数据对象:D={ai|ai∈CharSet,i=1,2,…,n,n>=0} 数据关系:R1={<ai-1,ai>|ai-1,ai∈D,i=2,…,n}

Word文档免费下载Word文档免费下载:C语言数据结构大作业之魔王语言答案 (共5页,当前第1页)

你可能喜欢

  • 二叉树遍历
  • 十六进制转换十进制
  • 数据结构排序
  • 影响经济发展的主要因素
  • 数据结构查找

C语言数据结构大作业之魔王语言相关文档

最新文档

返回顶部