资源描述:
《数据结构实验三 队列应用.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验三队列基本操作一、实验目的掌握队列的基本操作:初始化、判空、判满、入队、出队、取队列首元素等运算。二、实验要求包含有头文件和main函数;1.格式正确,语句采用缩进格式;2.设计子函数实现题目要求的功能;3.编译、连接通过,熟练使用命令键;4.运行结果正确,输入输出有提示,格式美观。三、实验设备、材料和工具1.奔腾2计算机或以上机型2.turboc2,win-tc四、实验内容和步骤实验内容:1.分析程序。2.完成程序编写和补充步骤:3.确定数据的结构;4.利用main函数调用各子函数;5.调试、分析运行结果。五、实验报告要求1.根据实验内容初步设计好程序,并从理论上排除
2、错误;2.针对程序的健壮性准备好测试数据;3.结果分析中如实填写运行后的结果,记录调试过程中产生的重要问题和解决方法。六、根据实验过程填写下面内容构建栈头文件,文件名称seqstack.h构建队列头文件,文件名称seqqueue.h基础部分1.构建队列逆置的程序,补充以下程序,完成运行和调试。#include"stdio.h"#include"seqqueue.h"#include"seqstack.h"voidproc(SeqQueue*q){SeqStacks;chara;InitStack(&s);while(!IsEmpty(q)){DeleteQueue(q,&a
3、);Push(&s,a);}while(!IsEmptys(&s)){Pop(&s,&a);EnterQueue(q,a);}}voidmain(){SeqQueueq;//定义队列qcharstr[50],temp;//定义字符数组str[50],定义字符变量tempinti;//定义整型变量iInitQueue(&q);//初始化队列qprintf("请输入队列内容: ");gets(str);//输入字符串for(i=0;str[i]!=' ';i++){temp=str[i];//输出字符的每一个字符EnterQueue(&q,temp);//字符串每一个字符入
4、队q}printf("");proc(&q);//调用proc函数,传递队列q的地址while(!IsEmpty(&q))//while循环,如果队列不为空则循环{DeleteQueue(&q,&temp);//出队,出队值存放于temp变量中printf("%c",temp);//输出temp变量值}printf("");}2.利用上一题的队列逆置函数(返回值、函数参数及部分语句稍作修改),编写一个程序,完成判断回文序列的程序。(回文序列不一定用&居中,可以是任意形式的,例如:或)#include"stdio.h"#include"seqqueue.h"#incl
5、ude"seqstack.h"SeqQueueproc(SeqQueueq){SeqStacks;charx;InitStack(&s);while(!IsEmpty(&q)){DeleteQueue(&q,&x);Push(&s,x);}while(!IsEmptys(&s)){Pop(&s,&x);EnterQueue(&q,x);}returnq;}voidmain(){SeqQueuex,y;charstr[50],temp;chara,b;inti;InitQueue(&x);InitQueue(&y);printf("请输入队列内容:");gets(str)
6、;for(i=0;str[i]!=' ';i++){temp=str[i];EnterQueue(&x,temp);}printf("");y=proc(x);while(!IsEmpty(&x)){DeleteQueue(&x,&a);DeleteQueue(&y,&b);if(a!=b)break;}if(IsEmpty(&x))printf("yes");elseprintf("no");}提高部分3.完成P81页习题3.7的各个算法的编写,并写出完整程序验证算法的正确性(参照教材上链队列的算法改写,尾指针用rear表示)。