欢迎来到天天文库
浏览记录
ID:28063555
大小:69.50 KB
页数:5页
时间:2018-12-07
《杭电数据结构实习报告2》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实习报告题目:魔王语言解释班级:姓名:学号:日期:一、需求分析1、写一个魔王语言的解释系统,把他的话解释成人能听懂的话。2、形式(从左到右均表示解释):(1)a->(31(32...3m(2)(af31f32...3n)->a3na(3n-1...a{31a3、用下述两条具体规则和上述规则像是实现。设大写字母表示魔王语言的词汇;小写字母表示人的语言词汇;希腊字母表示可以用大写字母或小写字母代换的变量。魔王语言可含人的词汇。(1)B->tAdA(2)A->sae4、测试数据B(ehnxgz)B角军释成tsa
2、edsaeezegexenehetsaedsae若将小写字母与汉字建立十*表所示对应关系,则魔王说的话是:“天上一只鹅地上一只鹅鹅追鹅赶鹅下鹅蛋鹅恨鹅天上一只鹅地上一只鹅”。tdsaezgXnh天地上一只鹅追赶下蛋恨二、详细设计typedefstruct//定义栈结构体char*base;char*top;intstacksize;JSqStack;typedefstructQNode//定义队结构体{chardata;structQNode*next;}QNode,*QueuePtr;typedefst
3、ruct//定义队头队尾指针结构体{QueuePtrfront;QueuePtrrear;}LinkQueue;intInitStack(SqStack&S);intGetTop(SqStackS,char&e);intPush(SqStack&S,chare);intPop(SqStack&S,char&e);intInitQueue(LinkQueue&Q);intEnQueue(LinkQueue&Q,chare);intDeQueue(LinkQueue&Q,char&e);inttranslat
4、e(char*p,intIen,SqStack&S,LinkQueue&Q);intmain(){charstr[100][100];inti=O,d=O;intlen;char*p;SqStackS;LinkQueueQ;InitStack(S);InitQueue(Q);scanf(n%sn,str[01);\输入魔王语言p=str[i];len=strlen(str[i]);translate(p,len,S,Q);\调用函数进行翻译return0;}inttranslate(char*p,in
5、tlen,SqStack&S,LinkQueue&Q)\定义翻译了•函数{intD=0;chare,q;p=p+len-l;while(D6、.front!=Q.rear)//如果队列中存元素则将首元素出队列入栈{DeQueue(Q,q);//q为xitaPush(S,q);break;}while(Q.front!=Q.rear&&D!=len)//出队列入栈{DeQueue(Q,e);Push(S,e);Push(S,q);}if(*P==,C)p=p-1;}while(S.top!=S.base){Pop(S,e);printf(Htsaedsae");elseif(e=='A')printfC’sae’’);elseif(e==' ,7、)continue;elseprintf("%c",e);}printf(HH);while(!QueueEmpty(Q)){//输出对应汉字DeQueue(Q,e);switch(e){case’t’:printf(”天");break;case’d':printf(n地,');break;case’s•:printf("上’•);break;case’a’:printf(”一只••);break;case’e’:printf(”鹅••);break;case’z':printf(’’追•’);br8、eak;case’g':printf(”赶");break;case’x’:printf(nT’’);break;case’n’:printf(n蛋’•);break;case’h’:printf^W);break;case:printf("天上一只鹅地上一只鹅");break;caseW:printf("上一只鹅”);break;default:printf("*");break;}}return0;}intInitStac
6、.front!=Q.rear)//如果队列中存元素则将首元素出队列入栈{DeQueue(Q,q);//q为xitaPush(S,q);break;}while(Q.front!=Q.rear&&D!=len)//出队列入栈{DeQueue(Q,e);Push(S,e);Push(S,q);}if(*P==,C)p=p-1;}while(S.top!=S.base){Pop(S,e);printf(Htsaedsae");elseif(e=='A')printfC’sae’’);elseif(e==' ,
7、)continue;elseprintf("%c",e);}printf(HH);while(!QueueEmpty(Q)){//输出对应汉字DeQueue(Q,e);switch(e){case’t’:printf(”天");break;case’d':printf(n地,');break;case’s•:printf("上’•);break;case’a’:printf(”一只••);break;case’e’:printf(”鹅••);break;case’z':printf(’’追•’);br
8、eak;case’g':printf(”赶");break;case’x’:printf(nT’’);break;case’n’:printf(n蛋’•);break;case’h’:printf^W);break;case:printf("天上一只鹅地上一只鹅");break;caseW:printf("上一只鹅”);break;default:printf("*");break;}}return0;}intInitStac
此文档下载收益归作者所有