




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、西安邮电学院数据结构实验报告回文序列判断班 级 班内序号 学生姓名 指导教师2011/10/13目录一、实验目的 2二、实验内容 2三、数据结构及算法思想 2四、模块划分 21、对各个模块进行功能的描述 22、模块之间关系及其相互调用的图示 3五、详细设计及运行结果 31、设计源代码: 32、运行结果: 7六、调试情况,设计技巧及体会 76亠、实验目的1熟悉并掌握栈的的创建、入栈和出栈等基本用法并能运用栈完成一些特 定的任务。2熟悉并掌握队列的的创建、入队和出队等基本用法并能运用队列完成一 些特定的任务。3、运用栈和队列实现对“回文”序列的判断。】、实验内容编写一个算法,判断一次读入一个以 砂
2、束符的字母序列,是否为形如序 列1&序列2'模式的字符序列。其中序列1和序列2中都不含字符&。且序列 2是序列1的逆序列。例如, a+b&b+a是属于该模式的字符序列, a+b&b-a' 则不是。三、数据结构及算法思想运用栈和队列算法,在序列依次输入时将序列分别入栈和入队列,禾用栈 FILO和队列FIFO的特点,通过出栈和出队列实现序列顺序和逆序的比较,根 据题目描述的回文序列判断并输出结果。四、模块划分1、对各个模块进行功能的描述本次设计共分为六个模块,分别是:初始化模块、输入模块、入栈模块、 入队模块、判断模块、输出模块。各个模块功能如下表。
3、表格1模块功能描述初始化模块栈、队列等初始化输入模块字母序列输入入栈模块将输入序列入栈入队模块将输入序列入队判断模块将序列正、逆比较输出模块判断结果输出2、模块之间关系及其相互调用的图示开始五、详细设计及运行结果1、设计源代码:#in clude"stdio.h"#i nclude"co ni o.h"#i nclude"malloc.h"typedef struct NODE char data; struct NODE *next;LinkStack; typedef struct Nodechar data; struct No
4、de *next;LinkQueueNode; typedef struct LinkQueueNode *front;LinkQueueNode *rear; LinkQueue;void InitStack(LinkStack *top) top->next=NULL;char Push(LinkStack *top,char a)LinkStack *temp; temp=(LinkStack *)malloc(sizeof(LinkStack); if(temp=NULL) return(0);temp->data=a; temp->next=top->next
5、; top->next=temp;return(1);char Pop(LinkStack *top)LinkStack *temp; char a; temp=top->next; if(temp=NULL) return(0);top->next=temp->next; a=temp->data;free(temp); return(a);int LengthStack(LinkStack *top)LinkStack *temp; int count=0; temp=top->next; while(temp!=NULL) count+;temp=te
6、mp->next;return(count);void InitQueue(LinkQueue *q)q->front=(LinkQueueNode *)malloc(sizeof(LinkQueueNode); q->rear=(LinkQueueNode *)malloc(sizeof(LinkQueueNode); q->rear=q->front;q->front->next=NULL;char EnterQueue(LinkQueue *q,char a)LinkQueueNode *NewNode;NewNode=(LinkQueueNod
7、e *)malloc(sizeof(LinkQueueNode); if(NewNode!=NULL)NewNode->data=a;NewNode->next=NULL; q->rear->next=NewNode; q->rear=NewNode;return(1);elsereturn(0);char OutQueue(LinkQueue *q)LinkQueueNode *temp;char a; if(q->rear=q->front)return(0); temp=q->front->next; q->front->
8、next=temp->next; if(q->rear=temp)q->rear=q->front; a=temp->data; free(temp);return(a);void main()char a100,flag1=0,flag2=0,n,m;int i=0,t=0;LinkStack *top=(LinkStack *)malloc(sizeof(LinkStack); LinkQueue *q=(LinkQueue *)malloc(sizeof(LinkQueue); InitStack(top);InitQueue(q); printf(&quo
9、t;please input a string end of :n"); while(ai-1!=64)scanf("%c",&ai);i+; for(t=0;t<i;t+) if(at!=64)Push(top,at); EnterQueue(q,at); t=LengthStack(top); if(t%2=0)printf("Input wrong!");else for(i=0;i<t;i+) n=Pop(top); m=OutQueue(q); if(n!=m) flag1=1;if(i=t/2)&&
10、;(n!=38) flag2=1; if(flag1|flag2) printf("This is not palindrome sequence!");elseprintf("This is palindrome sequence!"); getch();2、运行结果:2.1、回文字符序列输入:E:progra m'G.回文 hiuwenxe"please input a string end of © : qwertyytrewq©This is palindrome sequence J图22.2非回文字符序列
11、输入:Fd E:program Ce文h ruv.-'en.exe"please input a string end of : qwerttreq©This is not palindzome sequence 1六、调试情况,设计技巧及体会通过这次数据结构试验,我学习了链栈的建立及其一些基本的操作方法和队 列的建立及对其的一些基本操作,充分理解了栈和区别和联系,栈和队列都可以 通过链表实现,区别在于对其操作的节点位置不同,更重要的是通过这次实践操 作学会了完成一个设计的基本方法和步骤,拿到一个问题不能急于开始书写代码 要将问题理清楚、找清思路、分好模块再开始敲代码,代码只是实现一个功能的 工具,只有好的解决问题
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 桶装水合作合同
- 加油站场地租赁合同
- 股权转让合同担保合同
- 建设工程合同款支付保证保险条款
- 材料运输买卖合同
- 专业档案管理与咨询服务合同
- 聘任常年法律顾问合同
- 与供应商的合同评审流程指南
- 湖南人文科技学院《现代教育技术在中小学教学中的应用》2023-2024学年第二学期期末试卷
- 荆州学院《机能实验学》2023-2024学年第二学期期末试卷
- 全厂接地装置安装施工方案(铜覆钢、铜包钢施工方案)
- 民事二审再审改判案例:诉讼过程与争点剖析
- 肿瘤患者特殊医学用途配方食品使用指南
- 幼儿看图填数
- 酒店项目精装修工程施工组织设计
- 小学生研学旅行展示ppt模板
- 《思想道德与法治》第一章
- 新概念英语第2册课文word版
- 大学生职业生涯规划(高职)PPT完整全套教学课件
- 微信小程序开发实战(第2版)全套PPT完整教学课件
- 部编版语文四年级下册全册大单元整体作业设计
评论
0/150
提交评论