




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武汉大学实验报告资源与环境科学院 系 地理信息系统 专业 2013年12月22号实验名称利用链式堆栈和队列实现回文判断指导老师游涟姓名冯萱班级地信三班学号2012301130082成绩一、 实验原理利用链式队列先进先出的特点和链式堆栈的先进后出的特点可以很容易的判断一个字符串是不是回文的,本实验利用了这些特点完成了队列和堆栈的创建和初始化、定义、入队入栈、出队出栈、取栈顶元素队头元素,以及撤销队列和堆栈等函数并实现调用二、实验目的熟练运用堆栈和队列的各种操作,并会运用他们的特点做一些实际的应用。二、 实验步骤:1、 把堆栈的创建及操作函数放到LStack头文件下: 1:定义节点结构体:typedef struct snodeDataType data;struct snode *next;StNode;2:初始化堆栈:void StackInitiate(StNode * head)if(*head=(StNode*)malloc(sizeof(StNode)=NULL) exit(1);(*head)-next=NULL;3:判断堆栈非空:int StackNotEmpty(StNode *head)if(head-next=NULL) return 0;elsereturn 1;4:入栈函数:int StackPush(StNode *head,DataType x)StNode *p;if(p=(StNode *)malloc(sizeof(StNode)=NULL)printf(内存空间不足无法插入!n);return 0;p-data=x;p-next=head-next;head-next=p;return 1;5:出栈函数:int StackPop(StNode *head,DataType *d)StNode *p=head-next;if(p=NULL)printf(堆栈已空,出错!);return 0;head-next=p-next;*d=p-data;free(p);return 1;6:取栈顶元素:int StackTop(StNode *head,DataType *d)StNode *p=head-next;if(p=NULL)printf(堆栈已空出错!);return 0;*d=p-data;7:撤销堆栈:void Destory(StNode *head)StNode *p,*p1;p=head;while(p!=NULL)p1=p;p=p-next;free(p1);2、 把对队列的创建及操作函数放到LQueue头文件下:1:头结点结构体的创建:typedef struct qnodeDataType data;struct qnode *next;LQNode;2:队首队尾指针结构体的创建:typedef structLQNode *front;LQNode *rear;LQueue;3:初始化队列:void QueueInitiate(LQueue *Q) Q-rear = NULL;Q-front = NULL;4:判断队列非空:int QueueNotEmpty(LQueue Q)if(Q.front=NULL) return 0;else return 1;5:入队函数:int QueueAppend(LQueue *Q,DataType x)LQNode *p;if(p=(LQNode *)malloc(sizeof(LQNode)=NULL)printf(内存空间不足!n);return 0;p-data=x;p-next=NULL;if(Q-rear!=NULL) Q-rear-next=p;Q-rear=p;if(Q-front=NULL) Q-front=p;return 1;6:删除队列元素:int QueueDelete(LQueue *Q,DataType *d)LQNode *p;if(Q-front=NULL)printf(队列已空无数据可删!n);return 0;else*d=Q-front-data;p=Q-front;Q-front=Q-front-next;if(Q-front=NULL) Q-rear=NULL;free(p);return 1;7:得到队列元素:int QueueGet(LQueue Q,DataType *d)if(Q.front=NULL)printf(队列已空无数据可取!n);return 0;else*d=Q.front-data;return 1;8:撤销队列:void Destory(LQueue Q)LQNode *p,*p1;p=Q.front;while (p!=NULL)p1=p;p=p-next;free(p1);3、 源程序:实现了对以上头文件函数的调用和实现:#include#include#include#include#includetypedef char DataType;#includeLQueue.h#includeLStack.hvoid HuiWen(char str)LQueue myqueue;StNode *mystack;char x,y;int i,length;length=strlen(str);QueueInitiate(&myqueue);StackInitiate(&mystack);for(i=0;ilength;i+)QueueAppend(&myqueue,stri);StackPush(mystack,stri);while(QueueNotEmpty(myqueue)=1&StackNotEmpty(mystack)=1)if(QueueDelete(&myqueue,&x)=1&StackPop(mystack,&y)=1&x!=y)printf(%s不是回文!n,str);return;if(QueueNotEmpty(myqueue)|StackNotEmpty(mystack)printf(%s不是回文!n,str);elseprintf(%s是回文!n,str);void main()char str1=ABCDEDCBA;char str2=ABCDEDCAB;HuiWen(str1);HuiWen(str2);Sleep(10000);4、 实验结构如图:二:源程序实现函数的调用:#include#include#include#includetypedef int DataType;#includeSLNode.h#includeStack.hvoid main()SLNode *la,*lb;int x,i;int a10;ListInitiate(&la);ListInitiate(&lb);for(i=0;i10;i+) if(ListInsert(la,i,i+1)=0)printf(Errorn);return;printf(输出la:n);for(i=0;iListLength(la);i+)if(ListGet(la,i,&x)=0)printf(Errorn);return;else printf(%d ,x);printf(n);printf(输出就地逆置la:n);JiudiReserve(la);for(i=0;iListLength(la);i+)if(ListGet(la,i,&x)=0)printf(Errorn);return;else printf(%d ,x);printf(n);printf(再用返回lb逆置输出为:n);lb=SLNodeReserv
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年特殊作业安全培训试题及答案(新规范)
- 药用植物与生药学试题及答案
- 安全生产员工考试题及答案
- 国产化技术突破-洞察及研究
- 武汉市离婚协议财产分割与保险理赔服务合同
- 儿童教育机构店铺转让居间协议书
- 文化产业股东借款及股权代持协议
- 高端餐饮店面房出租合作协议范本
- 教育设施分包合同台账质量与进度监管办法
- 酒店餐饮承包合同终止及品牌授权续约协议书
- 中国产业结构与布局的历史演变
- GB/T 41697-2022康复辅助器具一般要求和试验方法
- GB/T 156-2007标准电压
- AM咨询I治理方法论
- 书法竖的写法
- 工程财务决算审计服务方案
- 自考英语考试真题及答案新版
- Q∕GDW 11612.1-2018 低压电力线高速载波通信互联互通技术规范 第1部分:总则
- 哈工大单片机张毅刚课件 第3章
- 净化实验室施工组织方案
- 110KV变电站负荷及短路电流计算及电气设备的选择及校验
评论
0/150
提交评论