ImageVerifierCode 换一换
格式:DOC , 页数:9 ,大小:828KB ,
资源ID:10546485      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-10546485.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(回文实验报告.doc)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

回文实验报告.doc

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

2、next;LQNode, *PQNode;typedef structPQNode front,rear;数据结构上机指导 LinkQueue;2 主程序的流程及各程序模块之间的层次关系。(1)int InitStack(SqStack *S):栈初始化模块,即初始化一个空栈,随后对该空栈进行数据的写入操作; (2)int Push(SqStack *s, char data):入栈操作,即给空栈中写入数据,数据长度有宏定义给出; (3)int Pop(SqStack *s, char *data):出栈操作,即将栈中的数据输出,由于栈的操作是先进后出,因此,出栈的数据是原先输入数据的逆序;

3、(4)int InitQueue(LinkQueue *q):队列初始化,即初始化一个空队列,最后对该空队列进行数据的写入操作; (5)int EnQueue(LinkQueue *q, char item):入队操作,即给空队列中写入数据,数据长度一样有宏定义给出; (6)int DeQueue(LinkQueue *q, char *item):出队操作,即将队列中的数据输出,由于队列的操作是先进先出,因此,出队的数据室原先输入数据的正序; (7)int main():主函数,用于调用前面的模块,进行出队数据与出栈数据的比较,判断输入的序列是否是回文序列。模块之间关系及其相互调用的图示:三

4、、 详细设计数据结构上机指导1 采用 c 语言定义相关的数据类型整形,字符型,指针类型,聚合类型,自定义类型2 写出各模块的伪码算法:参照源程序(1)int InitStack(SqStack *S)(2)int Push(SqStack *s, char data)(3)int Pop(SqStack *s, char *data) (4)int InitQueue(LinkQueue *q)(5)int EnQueue(LinkQueue *q, char item)(6)int DeQueue(LinkQueue *q, char *item) 四、 调试分析1 调试中遇到的问题及对问题

5、的解决方法:问题:程序出现未知错误。方法:在感觉容易出错的地方或者是已经出错的地方前面打断点,进一步调试。2 算法的时间复杂度和空间复杂度。时间复杂度:T(n) = O(n)五、 使用说明及测试结果回文字符输入:非回文字符输入:六、 源程序(带注释)#include #include #include 数据结构上机指导#define STACKSIZE 100typedef structchar itemSTACKSIZE;int top;SqStack;/*顺序栈的定义*/typedef struct QNodechar data;struct QNode *next;LQNode, *PQ

6、Node;typedef structPQNode front,rear; LinkQueue;/*链队列的定义*/int InitStack(SqStack *S);/*初始化顺序栈*/int StackEmpty(SqStack S);/*判断是否为空栈*/int Push(SqStack *s, char data);/*入栈*/int Pop(SqStack *s, char *data);/*出栈*/int InitQueue(LinkQueue *q);/*初始化链队列*/int QueueEmpty(LinkQueue q);/*判断是否为空队列*/int EnQueue(Lin

7、kQueue *q, char item);/*入队*/int DeQueue(LinkQueue *q, char *item);/*出队*/int TraverseQueue(LinkQueue q);/*遍历*/int InitStack(SqStack *S) /*初始化顺序栈*/S-top = -1;return 1;int StackEmpty(SqStack S)/*判断是否为空栈*/if(S.top = -1) return 1;else return 0;int Push(SqStack *s, char data)/*入栈*/if(s-top = STACKSIZE - 1

8、)数据结构上机指导printf(“n 栈已满,不能完成入栈操作!“);return 0;s-top+;s-items-top = data;return 1;int Pop(SqStack *s, char *data)/*出栈*/if (s-top = -1)printf(“n 堆栈已空,不能完成出栈操作!“);return 0;*data = s-items-top;s-top-;return 1;int InitQueue(LinkQueue *q)/*初始化链队列*/q-front = q-rear = (PQNode)malloc(sizeof(LQNode);if(!q-front

9、)printf(“n 初始化队列失败!“);return 0;q-front-next = NULL;return 1;int QueueEmpty(LinkQueue q)/*判断是否为空队列*/if (q.front = q.rear) printf(“n 队列为空!“); return 1;else return 0;数据结构上机指导int EnQueue(LinkQueue *q, char item)/*入队*/PQNode p;p = (PQNode)malloc(sizeof(LQNode);if(!p)printf(“n 内存分配失败“);return 0;p-data = i

10、tem;p-next = NULL;q-rear-next = p;q-rear = p;return 1;int DeQueue(LinkQueue *q, char *item)/*出队*/PQNode p;if(q-front = q-rear)printf(“n 队列已空,不能出队“);return 0;p = q-front-next;*item = p-data;q-front-next = p-next;free(p);if(q-rear = p) /*若删除的为最后一个结点,移动队尾指针*/q-front = q-rear;return 1;int TraverseQueue(

11、LinkQueue q)/*遍历*/PQNode pos;if(q.front = q.rear)printf(“n 队列为空!“);return 0;数据结构上机指导pos = q.front-next;printf(“nHere is the string:“);while(pos != NULL)printf(“%c“, pos-data);pos = pos-next;printf(“n“);return 1;int main()int i,len,count1 = 0;char str1100,ch,ch1;LinkQueue lq1,lq2;SqStack sq;printf(“请

12、输入字符:“);scanf(“%s“, len = strlen(str1);InitQueue(InitQueue(InitStack(for(i=0;ilen;i+)EnQueue(TraverseQueue(lq1);for(i=0;ilen;i+)DeQueue(Push(EnQueue(for(i=0;ilen;i+)Pop(EnQueue(TraverseQueue(lq2);数据结构上机指导for(i=0;ilen;i+)DeQueue(DeQueue(if(ch1 != ch) count1+;if(count1 = 0)printf(“n 该字符串为回文“);elseprintf(“n 该字符串不是回文“);return 0;

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报