下载此文档

魔王语言解释-数据结构课程设计报告.doc


文档分类:高等教育 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
实习2、,没人能听的懂,但他的语言是可以逐步解释成人能懂得语言的,因为他的语言是由以下两种形式的规则由人的语言逐步抽象上去的:(1)α->β1β2...βn(2)(θδ1δ2...δn)—>θδnθδn-1...θδ1θ在这两种形式中,从左到右均表示解释。试写一个魔王解释系统,把他的话解释成人能听懂得话。 用下述两条具体规则和上述规则形式(2)实现。设大写字母表示魔王语言的词汇;小写字母表示人的语言词汇;希腊字母表示可以用大写或小写字母代换的变量。魔王语言可含人的词汇。 (1)B—>tAdA (2)A—>(ehnxgz)B解释成tsaedsaeezegexenehetsaedsae若将小写字母与汉字建立下表所示的对应关系,则魔王说的话是“天上一个鹅地上一个鹅鹅追鹅赶鹅下鹅蛋鹅恨鹅天上一个鹅地上一个鹅”。 将魔王的语言自右至左进栈,总是处理栈顶字符。若是开括号,则逐一出栈,将字母顺序入队列,直至闭括号出栈,并按规则要求逐一出队列再处理后入栈。其他情形较简单,请读者思考如何处理。应首先实现栈和队列的基本操作。概要设计设定栈的抽象数据类型定义:ADTStack{数据对象:D={ai|ai∈CharSet,i=1,2,……n,.n≥0}数据关系:R1={<ai-1,ai>|ai-1,ai∈D,ai-1<ai,i=1,2……,n}基本操作:InitStack(*S)操作结果:构造一个空栈。Push(*S,e)初始条件:栈S已存在操作结果:在栈顶插入新的元素。Pop(*S,*e)初始条件:栈S已存在操作结果:删除栈顶元素,并用e返回其值。StackEmpty(S)初始条件:栈S已存在操作结果:若S为空栈,则返回1,否则返回0。ClearStack(*S)初始条件:栈S已存在操作结果:将栈S清空。InStack(char*ch,SqStack*s)初始条件:栈S已存在操作结果:把字符数组从右至左压入栈中。}ADTStackADTQueue{数据对象:D={ai|ai∈CharSeti=1,2,……n,.n≥0}数据关系:R1={<ai-1,ai>|ai-1,ai∈Dti=1,2,……n}基本操作:InitQueue(*Q)操作结果:构造一个空队列Q。EnQueue(*Q,e)初始条件:队列Q已经存在。操作结果:插入元素e为Q的新的队尾元素。DeQueue(*Q,*e)初始条件:队列Q已经存在。操作结果:删除Q的对头元素,并以e返回其值。QueueEmpty(Q)初始条件:队列Q已经存在。操作结果:若队列Q为空栈,则返回1,否则返回0。}ADTQueue详细设计(源代码)(使用C语言)#include<>#include<>#defineSTACK_INIT_SIZE100//存储空间初始分配量#defineSTACKINCREMENT10//存储空间分配增量typedefstruct{char*base;//栈底指针char*top;//栈顶指针intstacksize;}SqStack;typedefstructQNote{chardata;structQNote*

魔王语言解释-数据结构课程设计报告 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人xnzct26
  • 文件大小159 KB
  • 时间2019-10-10
最近更新