ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:32.87KB ,
资源ID:6181264      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6181264.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(魔王语言源代码.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

魔王语言源代码.docx

1、魔王语言源代码 题目:魔王语言源代码#include#include#define STACK_INIT_SIZE 100#define STACK_INCREMENT 10struct Stack char* base; char* top; int stacksize;void InitStack(struct Stack &s)/构造栈 s.base=(char*)malloc(STACK_INIT_SIZE*sizeof(char); s.top=s.base; s.stacksize=STACK_INIT_SIZE;void Push(struct Stack &s,char e)/

2、压入元素 if(s.top-s.base=STACK_INIT_SIZE) s.base=(char*)realloc(s.base,(s.stacksize+STACK_INCREMENT)*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 Stack s)/栈是否为空 if(s.top=s.base) return 1; e

3、lse return 0; void ClearStack(struct Stack &s) s.top=s.base;struct Queue char data; struct Queue* next;struct LinkQueue struct Queue* front; struct Queue* rear;void InitQueue(struct LinkQueue &q)/构造队 q.front=q.rear=(struct Queue*)malloc(sizeof(struct Queue); q.front-next=NULL;void EnQueue(struct Lin

4、kQueue &q,char e)/元素入队 struct Queue* p; p=(struct Queue*)malloc(sizeof(struct Queue); p-data=e; p-next=NULL; q.rear-next=p; q.rear=p;void DeQueue(struct LinkQueue &q,char &e)/元素出队 struct Queue* p; p=q.front-next; e=p-data; q.front-next=p-next; if(q.rear=p) q.rear=q.front; free(p);int QueueEmpty(stru

5、ct LinkQueue q)/队是否为空 if(q.front=q.rear) return 1; else return 0; void InStack(char* ch,struct Stack &s)/把字符数组从右至左压入栈中 int i,L=0; while(chL!=0) L+; for(i=L-1;i=0;i-) Push(s,chi); int main() int i=0; char A=sae; char B=tsaedsae; char flag=0;/flag用来标记处理括号 int mark=1; int f=0; struct Stack S; struct St

6、ack temp;/用来处理括号外的元素 InitStack(S); InitStack(temp); struct LinkQueue Q; InitQueue(Q); char MoWang100=0; char e1,key,e2,e; printf(*n); printf(* * 欢迎光临广东工业大学 * *n); printf(* * *n); printf(* * 魔王语言解释系统 * *n); printf(* * *n); printf(* 班级:计算机学院网络工程2007级4班 *n); printf(* 姓名: 黄文龙 学号: 3107007087 *n); printf(

7、*nn); printf(请输入你想要解释的魔王语言(最多含有一个括号):n); gets(MoWang); InStack(MoWang,S);/把要解释的魔王语言压入栈中 while(!StackEmpty(S) Pop(S,e1); if(e1=() if(StackEmpty(S) printf(魔王语言错误!n); mark=0; break; while(!StackEmpty(S) Pop(S,e1); if(e1=) f=1; break; else if(!(e1=a&e1=A&e1=a&e1=A&e1=Z) printf(魔王语言错误!n); mark=0; break;

8、if(mark=1&f=1) ClearStack(S); InStack(MoWang,S); while(!StackEmpty(S)/栈不空时 Pop(S,e1); if(e1=B) Push(temp,e1); else if(e1=A) Push(temp,e1); else if(e1=()/用队存储括号中的元素 Push(temp,flag);/有括号的话就用flag标记 Pop(S,e1); while(e1!=) EnQueue(Q,e1); Pop(S,e1); if(!QueueEmpty(Q) DeQueue(Q,key); else Push(temp,e1); f=

9、0; while(!StackEmpty(temp)/边处理边进栈 Pop(temp,e1); if(e1!=flag)/把括号外的元素压入中 Push(S,e1); else while(!QueueEmpty(Q)/处理括号中的元素进栈 DeQueue(Q,e2); Push(S,key); Push(S,e2); if(f!=0)/最后还要压一个key Push(S,key); printf(解释后的语言为:n); while(!StackEmpty(S)/依次出栈输出处理后的元素 Pop(S,e); EnQueue(Q,e);/元素进队是为了输出对应汉字 if(e=B) printf(

10、%s,B); else if(e=A) printf(%s,A); else printf(%c,e); printf(n); while(!QueueEmpty(Q)/输出对应汉字 DeQueue(Q,e); switch(e) case t: printf(天);break; case d : printf(地); break; case s : printf(上); break; case a : printf(一只); break; case e : printf(鹅); break; case z : printf(追); break; case g : printf(赶); break; case x : printf(下); break; case n : printf(蛋); break; case h : printf(恨); break; case B : printf(天上一只鹅地上一只鹅);break; case A : printf(上一只鹅);break; default : printf(*);break; printf(n); system(pause); return 0;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1