《数据结构实验三 队列应用.doc》由会员分享,可在线阅读,更多相关《数据结构实验三 队列应用.doc(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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.hvoid proc(SeqQueue *q)SeqStack s;char a;InitStack(&s);while(!IsEmpty(q)DeleteQueue(q,&a);Pus
3、h(&s,a);while(!IsEmptys(&s)Pop(&s,&a);EnterQueue(q,a);void main()SeqQueue q;/定义队列qchar str50,temp;/定义字符数组str50,定义字符变量tempint i;/定义整型变量iInitQueue(&q);/初始化队列qprintf(请输入队列内容:0);gets(str);/输入字符串for(i=0;stri!=0;i+)temp=stri;/输出字符的每一个字符EnterQueue(&q,temp);/字符串每一个字符入队qprintf(n); proc(&q);/调用proc函数,传递队列q的地址
4、while(!IsEmpty(&q)/while循环,如果队列不为空则循环DeleteQueue(&q,&temp);/出队,出队值存放于temp变量中printf(%c,temp);/输出temp变量值printf(n);2.利用上一题的队列逆置函数(返回值、函数参数及部分语句稍作修改),编写一个程序,完成判断回文序列的程序。(回文序列不一定用&居中,可以是任意形式的,例如:或)#include stdio.h#include seqqueue.h#include seqstack.hSeqQueue proc(SeqQueue q)SeqStack s;char x;InitStack(&
5、s);while(!IsEmpty(&q)DeleteQueue(&q,&x);Push(&s,x);while(!IsEmptys(&s)Pop(&s,&x);EnterQueue(&q,x);return q;void main()SeqQueue x,y;char str50,temp;char a,b;int i;InitQueue(&x);InitQueue(&y);printf(请输入队列内容:n);gets(str);for(i=0;stri!=0;i+)temp=stri;EnterQueue(&x,temp);printf(n);y=proc(x);while(!IsEmpty(&x)DeleteQueue(&x,&a);DeleteQueue(&y,&b);if(a!=b) break;if(IsEmpty(&x) printf(yesn);else printf(non);提高部分3.完成P81页习题3.7的各个算法的编写,并写出完整程序验证算法的正确性(参照教材上链队列的算法改写,尾指针用rear表示)。
限制150内