数据结构 课程设计报告 魔王语言解释.docx
《数据结构 课程设计报告 魔王语言解释.docx》由会员分享,可在线阅读,更多相关《数据结构 课程设计报告 魔王语言解释.docx(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、题目:魔王语言解释问题描述有一个魔王总是使用自己的一种非常精练而抽象的语言讲话,没有人能听懂, 但他的语言是可以逐步解释成人能听懂的语言,因为他的语言是由以下两种形式 的规则由人的语言逐步抽象上去的:(1) a-3 1323m (2) ( 0 6 1 6 25n) 0 5n0 6 n-l0519在这两种形式中,从左到右均表示解释。试写一个魔王语言的解释系统,把 他的话解释成人能听得懂的话;基本要求用下述两条具体规则和上述规则形式(2)实现。设大写字母表示魔王语言 的词汇;小写字母表示人的语言词汇;希腊字母表示可以用大写字母或小写字母 代换的变量。魔王语言可含人的词汇。(1) B-tAdA(2)
2、 A-sae测试数据B (ehnxgz) B 解释成 tsaedsaeezegexenehetsaedsae若将小写字母与汉字建立下表所示的对应关系,则魔王说的话是:“天上一 只鹅地上一只鹅鹅追鹅赶鹅下鹅蛋鹅恨鹅天上一只鹅地上一只鹅”。TdSaeZgXnh天地上只鹅追赶蛋恨实现提示将魔王的语言自右至左进栈,总是处理栈顶字符。若是开括号,则逐一出栈, 将字母顺序入队列,直至闭括号出栈,并按规则要求逐一出队列再处理后入栈。 其他情形较简单,请读者思考应如何处理。应首先实现栈和队列的基本操作。while(el!=,),)EnQueue(Q,el);Pop(S,el);if(!QueueEmpty(Q
3、)DeQueue(Q,key);)elsePush(temp9el);f=0;)while(!StackEmpty(temp)边处理边进栈Pop(temp,el);if(el !=flag)把括号外的元素压入中Pusgel);elsewhiIe(!QueueEmpty(Q)处理括号中的元素进栈DeQueue(Q,e2);Push(S,key);Push(S,e2);if(f!=O)最后还要压一个keyPush(S,key);)printf解释后的语言为:nn);while(!StackEmpty(S)依次出栈输出处理后的元素Pop(S,e);EnQueue(Q,e); 元素进队是为了输出对应汉
4、字if(e=fB,)printf(H%s,B);else if(e=A)printf(H%s,A);) else(printf(H%c,e);源代码#include#include#define STACKJNIT.SIZE 100#define STACK_INCREMENT 10struct Stackchar* base;char* top;int stacksize;);void InitStack(struct Stack &s)构造栈s.base=(char)malloc(STACK_INIT_SIZEsizeof(char);s.top=s.base;s.stacksize=ST
5、ACK INIT SIZE;)void Push(struct Stack &s9char e)压入元素if(s.top-s.base=STACK_INIT_SIZE)s.base=(char*)realloc(s.baseXs.stacksize+STACK_INCREMENT):5:sizeof(char);s.top=s.base+s.stacksize;s.stacksize+=STACK INCREMENT;)*(s.top)=e;s.top+;void Pop(struct Stack &s,char &e)取出元素 e=*-s.top;)int StackEmpty(struct
6、 Stack s)栈是否为空if(s.top=s.base)return 1;)elsereturn 0;)void ClearStack(struct Stack &s) s.top=s.base;)struct Queuechar data;struct Queue* next;);struct LinkQueuestruct Queue* front;struct Queue* rear;);void InitQueue(struct LinkQueue &q)构造队q.front=q.rear=(struct Queue)malloc(sizeof(struct Queue);q.fr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计报告 魔王语言解释 课程设计 报告 魔王 语言 解释
限制150内