回文实验报告

回文实验报告

ID:46893562

大小:828.00 KB

页数:9页

时间:2019-11-29

回文实验报告_第1页
回文实验报告_第2页
回文实验报告_第3页
回文实验报告_第4页
回文实验报告_第5页
资源描述:

《回文实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、数据结构上机指导实验题目回文判断的算法班级通信143姓名刘峻霖学号2014101108日期2015年6月17日星期三数据结构上机指导一、需求分析1.程序的功能:实现对字符序列是否是一个回文序列的判断2.输入输出的要求:从键盘读入一组字符序列,判断是否是回文,并将结果显示在屏幕上3.测试数据:回文字符序列输入:非回文字符序列输入:二、概要设计1.本程序所用的抽象数据类型的定义:typedefstruct{charitem[STACKSIZE];inttop;}SqStack;typedefstructQNode{chardata;struct

2、QNode*next;}LQNode,*PQNode;typedefstruct{PQNodefront,rear;数据结构上机指导}LinkQueue;1.主程序的流程及各程序模块之间的层次关系。(1)intInitStack(SqStack*S):栈初始化模块,即初始化一个空栈,随后对该空栈进行数据的写入操作;(2)intPush(SqStack*s,chardata):入栈操作,即给空栈中写入数据,数据长度有宏定义给出;(3)intPop(SqStack*s,char*data):出栈操作,即将栈中的数据输出,由于栈的操作是先进后出,

3、因此,出栈的数据是原先输入数据的逆序;(4)intInitQueue(LinkQueue*q):队列初始化,即初始化一个空队列,最后对该空队列进行数据的写入操作;(5)intEnQueue(LinkQueue*q,charitem):入队操作,即给空队列中写入数据,数据长度一样有宏定义给出;(6)intDeQueue(LinkQueue*q,char*item):出队操作,即将队列中的数据输出,由于队列的操作是先进先出,因此,出队的数据室原先输入数据的正序;(7)intmain():主函数,用于调用前面的模块,进行出队数据与出栈数据的比较,

4、判断输入的序列是否是回文序列。模块之间关系及其相互调用的图示:二、详细设计数据结构上机指导1.采用c语言定义相关的数据类型整形,字符型,指针类型,聚合类型,自定义类型2.写出各模块的伪码算法:参照源程序(1)intInitStack(SqStack*S)(2)intPush(SqStack*s,chardata)(3)intPop(SqStack*s,char*data)(4)intInitQueue(LinkQueue*q)(5)intEnQueue(LinkQueue*q,charitem)(6)intDeQueue(LinkQueue

5、*q,char*item)二、调试分析1.调试中遇到的问题及对问题的解决方法:问题:程序出现未知错误。方法:在感觉容易出错的地方或者是已经出错的地方前面打断点,进一步调试。2.算法的时间复杂度和空间复杂度。时间复杂度:T(n)=O(n)三、使用说明及测试结果回文字符输入:非回文字符输入:四、源程序(带注释)#include#include#include数据结构上机指导#defineSTACKSIZE100typedefstruct{charitem[STACKSIZE];intto

6、p;}SqStack;/*顺序栈的定义*/typedefstructQNode{chardata;structQNode*next;}LQNode,*PQNode;typedefstruct{PQNodefront,rear;}LinkQueue;/*链队列的定义*/intInitStack(SqStack*S);/*初始化顺序栈*/intStackEmpty(SqStackS);/*判断是否为空栈*/intPush(SqStack*s,chardata);/*入栈*/intPop(SqStack*s,char*data);/*出栈*/in

7、tInitQueue(LinkQueue*q);/*初始化链队列*/intQueueEmpty(LinkQueueq);/*判断是否为空队列*/intEnQueue(LinkQueue*q,charitem);/*入队*/intDeQueue(LinkQueue*q,char*item);/*出队*/intTraverseQueue(LinkQueueq);/*遍历*/intInitStack(SqStack*S)/*初始化顺序栈*/{S->top=-1;return1;}intStackEmpty(SqStackS)/*判断是否为空栈*/

8、{if(S.top==-1)return1;elsereturn0;}intPush(SqStack*s,chardata)/*入栈*/{if(s->top==STACKSIZE

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。