版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上回文判断实验报告问题描述:对于一个从键盘输入的字符串,判断其是否为回文。回文即正反序相同。如“abba”是回文,而“abab”不是回文。一、需求分析(1)数据从键盘读入;(2)输出要判断的字符串; (3)利用栈的基本操作对给定的字符串判断其是否是回文,若是则输出“Yes”,否则输出“No”。二、概要设计抽象数据类型栈定义如下ADT stack数据对象:D=|i=1,2,n,n0数据关系:R1=<,>|,D,i=2,n; 约定端为栈顶,端为栈底基本操作: InitStack(&s) 操作结果:构造一个空栈 push(&s,e) 初始条件:栈s
2、存在 操作结果:插入元素e作为新的栈顶元素 pop (&s,&e) 初始条件:栈s存在 操作结果:删除栈s的栈顶元素,并用e返回其值三、详细设计#include<stdio.h>#include<stdlib.h>#include<string>#define TRUE 1#define FALSE 0#define Stack_Size 100 /定义栈的最大容量#define STACKINCREMENT 10typedef structchar *base;char *top;int stacksize;SqStack;int Init
3、Stack(SqStack &S)/构造一个空栈S.base=(char*)malloc(Stack_Size*sizeof(char);if(!S.base)exit(FALSE);S.top=S.base;S.stacksize=Stack_Size;return TRUE;void Push(SqStack &S,char x)/进栈函数if(S.top-S.base>=S.stacksize)S.base=(char*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(char);if(!S.base)exit(
4、FALSE);S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;*S.top+=x;char Pop(SqStack &S,char &c)/出栈函数if(S.top=S.base)return FALSE;c=*-S.top;return c;int main() SqStack S;InitStack(S);char a30;char c;char e;int k=0;printf("请输入要转换的的字符串,以#号结束:n");for(int i=0;i<30;i+)scanf("%
5、c",&c);if(c!='#')ai=c;elsek=i;break;for(int h=0;h<k;h+)Push(S,ah);int count=0;/定义一个计时器for(int w=0;w<k;w+)char x=Pop(S,e);printf("%c",x);if(aw=x)count+;printf("n");if(count=k)printf("是回文n");return TRUE;elseprintf("不是回文n");return FALSE;pri
6、ntf("n");四、调试分析对于语句中的一般回文单词能正常输出,句末跟标点符号连在一起的回文单词也能通过程序把字符串末尾的标点给去掉并正常输出,而字符串中的连接符可以作为回文单词的组成部分一起输出。六、测试数据1、输入“abba”。正确结果:是回文2、输入“12321”。正确结果:是回文3、输入“ab.ba”。正确结果:是回文4、输入“abab”。正确结果:不是回文七、课设总结通过本次数据结构的课程设计,我学习了很多在上课没懂的知识,更巩固了课堂中学习有关于栈的知识, 此次回文的实现让自己对数据结构的了解更深入,同时,又让我们学会了如何更好的从网上查找资料,还有同班上同学
7、的交流。虽然我对数据结构有了一定的掌握,但是到了真正使用,做课设的时候还是遇到了许多的问题。在整个设计过程中,锻炼了对事情的分析能力,通过怎样解决过程中出现的问题,提高了我们查找文献的能力、对网络资源的利用能力和和其他同学的交流沟通能力。编写程序是件细心活,稍不留神就会出错,这就必须要求我们对待事情要认真!在编写程序的过程中,错误不断出现,不同的类型(如少写了一个符号,写错了字母,用错了函数等等)层出不穷,这考验我们待事细心,耐心,能不能坚持到底,不能半途而废。 每一次的课程实验设计,都是让我们对原有的知识从了解表面到深入本质,从个体学习到整体把握的跳跃,对新知识的汲取,更是把课本的知识应用到实际中,让我们了解了我们的学习有什么用,能够解决什么样的问题,增加了自信和学习的动力。总之,通过这次的课程设计,我们收获匪浅首先由衷感谢老师提供这样一个锻炼自己的机会,感受到学来的知识不只是用来完成试卷的。一向惯于独立思考的自己学会
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 输尿管双J管护理的团队协作
- 阑尾炎患者的心理康复护理
- 鼓胀护理病例讨论分析
- 输尿管双J管护理的质量控制
- 中医护理操作中的无菌技术
- 门诊护理工作流程解析
- 2026年月度业绩报告提醒函(3篇)
- 医院跌倒应急预案方案
- 高校学生心理健康教育与咨询指导书
- 下一季度技术研讨会邀请函(5篇)
- 2026广东东莞市公安局茶山分局警务辅助人员招聘18人(第2批)笔试备考题库及答案解析
- 2026天津市政投资有限公司社会招聘2人考试参考题库及答案解析
- 医师处方权授予通知单
- AI驱动的Figma产品原型设计:从效率提升到协作革新
- 立卧复合加工中心-团体标准(征求意见稿)编制说明
- 2024年中国辅酶Q10胶囊行业投资分析、市场运行态势、未来前景预测报告
- 急救医疗管理系统(紫云)
- NB-T31111-2017风电机组高电压穿越测试规程
- 公园设施维修投标方案
- 2023年重庆市永川区社区工作者招聘考试真题
- 23秋国家开放大学《液压气动技术》形考任务1-3参考答案
评论
0/150
提交评论