欢迎来到天天文库
浏览记录
ID:26686694
大小:242.50 KB
页数:11页
时间:2018-11-28
《云南大学软件学院数据结构实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、..WORD.格式整理..云南大学软件学院数据结构实验报告实验难度:A□B□C□序号学号姓名成绩指导教师(签名)学 期: 2017秋季学期任课教师: 实验题目:组员及组长: 承担工作: 联系电话: 电子邮件: 完成提交时间:年月日 ..专业.知识.分享....WORD.格式整理..一、【实验构思(Conceive)】(10%)(本部分应包括:描述实验实现的基本思路,包括所用到的离散数学、工程数学、程序设计等相关知识,对问题进行概要性地分析)魔王语言的解释规则:大写字母表示魔
2、王语言的词汇,小写字母表示人的词汇语言,魔王语言中可以包含括号,魔王语言的产生式规则在程序中给定,当接收用户输入的合法的魔王语言时,通过调用魔王语言翻译函数来实现翻译。在A的基础上,(根据产生式)自定义规则,将一段魔王的话翻译为有意义的人类语言(中文):输入wasjg,则魔王语言解释为“我爱数据结构”。运用了离散数学的一些基本知识及程序设计知识。二、【实验设计(Design)】(20%)(本部分应包括:抽象数据类型的定义和基本操作说明,程序包含的模块以及各模块间的调用关系,关键算法伪码描述及程序流程图
3、等,如有界面则需包括界面设计,功能说明等)//---------------抽象数据类型的定义------------------//#defineSTACK_INIT_SIZE50#defineSTACKINCREMENT10#defineOVERLOW-2#defineERROR-1typedefstruct{char*base;//顺序栈的栈底指针inttop;//顺序栈的栈顶intsize;//栈元素空间的大小}SqStack;//结构体类型顺序栈typedefstruct{char*base
4、;intfront;intrear;}SqQueue;//结构体类型队列//---------------各个模块功能的描述------------------//voidInit_SqStack(SqStack&s)//初始化顺序桟voidPush_SqStack(SqStack&s,charc)//压入数据intPop_SqStack(SqStack&s,char&e)//出桟charGetTop_SqStack(SqStacks)//或得栈顶..专业.知识.分享....WORD.格式整理..in
5、tIsEmpty_SqStack(SqStacks)//判断是否空栈voidInit_SqQueue(SqQueue&q)//初始化voidEn_SqQueue(SqQueue&q,charc)//进队列intDe_SqQueue(SqQueue&q,char&e)//出队列voidTranslate(charc)//打印字符voidReverse(charstr[],charstrtmp[])//将字符串反向intExecute(charch[],SqStack&s,SqQueue&q)//魔王语言
6、操作调用关系:三、【实现(Implement)】(30%)(本部分应包括:抽象数据类型各操作的具体实现代码、关键操作的具体算法实现、函数实现,主程序实现等,并给出关键算法的时间复杂度分析。如有界面则需包括界面的关键实现方法等。)主程序模块:intmain(){charch[100];charch1[100];charch2[100];chare;//********************************************************英文解密printf("请输入魔王语言:"
7、);gets(ch);SqStacks;SqQueueq;Init_SqStack(s);Init_SqQueue(q);if(Execute(ch,s,q)==1)..专业.知识.分享....WORD.格式整理..{while(De_SqQueue(q,e)==1){Translate(e);}}elseprintf("输入的括号不匹配!");//左括号比右括号多,不匹配//********************************************************中文解密pri
8、ntf("");printf("请输入魔王语言:");gets(ch1);Init_SqStack(s);Init_SqQueue(q);Reverse(ch1,ch2);{for(inti=0;ch2[i]!=' ';i++)Push_SqStack(s,ch2[i]);while(Pop_SqStack(s,e)==1){switch(e){case'w':printf("我");break;case'a':printf("爱");break;
此文档下载收益归作者所有