数据结构检测回文串实验报告.docxVIP

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构检测回文串实验报告   数据结构课程实验报告要求   实验题目:回文判断算法   班级通信143姓名刘海波学号XX日期   一、需求分析   1.程序的功能;   利用栈和队列的操作来实现对字符序列是否是一个回文序列的判断。设计和验证入栈、出栈及入队、出队的算法。   2.输入输出的要求;   从键盘读入一组字符序列,按输入顺序入队列到链式队列A中。并将创建好的A队列中元素依次遍历,打印在屏幕上。将字符序列从A队列出队列,压入到一个顺序栈中。再将字符序列从顺序栈中出栈,入队到另一个链式队列B中。将创建好的B队列中元素依次遍历,打印在屏幕上。将A,B队列中的元素出队逐一比较,判断是否一致。若一致则是回文,并将判定结果打印到屏幕上。   3.测试数据:输入一组字符串进行判断。   二、概要设计   1.本程序所用的抽象数据类型的定义;   typedefstruct{   charitem[STACKSIZE];   inttop;   }SqStack;   typedefstructQNode{   chardata;   structQNode*next;   }LQNode,*PQNode;   typedefstruct{   PQNodefront,rear;   }LinkQueue;   2.主程序的流程及各程序模块之间的层次关系。   从键盘上读取一个字符,同时存储在顺序栈与链队列之中,直到字符序列的最后一个字符为*停止插入。在程序中设置了一个标志位flag,将输入的序列分别做入栈、出栈、入队、出队操作,若出栈与出队的数据完全一致,则将flag标志为1,否则为零。Flag为1,则表示该序列是回文序列,否则,为非回文序列。   三、详细设计   1.采用c语言定义相关的数据类型;   typedefstruct{   charitem[STACKSIZE];   inttop;   }SqStack;   typedefstructQNode{   chardata;   structQNode*next;   }LQNode,*PQNode;   typedefstruct{   PQNodefront,rear;   }LinkQueue;   2.写出各模块的伪码算法;   intInitStack(SqStack*S)   intStackEmpty(SqStackS)   intPush(SqStack*s,chardata)   intPop(SqStack*s,char*data)   intInitQueue(LinkQueue*q)   intQueueEmpty(LinkQueueq)   intEnQueue(LinkQueue*q,charitem)   intDeQueue(LinkQueue*q,char*item)   intPutOutQueue(LinkQueueq)   四、调试分析   1.调试中遇到的问题及对问题的解决方法;   对于语句中的一般回文单词能正常输出,句末跟标点符号连在一起的回文单词也能通过程序把字符串末尾的标点给去掉并正常输出,而字符串中的连接符可以作为回文单词的组成部分一起输出。   2.算法的时间复杂度和空间复杂度。   时间复杂度为O;空间复杂度为O。   五、使用说明及测试结果   程序执行后显示以下内容:   请输入一字符串;   对该字符串进行判断;   输出原字符串与逆字符串;   判断是否为回文;   输出结果。   六、源程序   #include   #include   #include   #defineSTACKSIZE100   typedefstruct{   charitem[STACKSIZE];   inttop;   }SqStack;   typedefstructQNode{   chardata;   structQNode*next;   }LQNode,*PQNode;   typedefstruct{   PQNodefront,rear;   }LinkQueue;   intInitStack(SqStack*S)   {   S-top=-1;   return1;   }   intStackEmpty(SqStackS)   {   if(==-1)return1;   elsereturn0;   }   intPush(SqStack*s,chardata)   {   if(s-top==STACKSIZE-1)   {   printf(\n栈已满,不能完成入栈操作);   return0;   }   s-top++;   s-item[s-top]=data;   return

文档评论(0)

dajia1qi + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档