数据结构实验5 (1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》实验报告
实验序号:5 实验项目名称:队列的操作学号姓名专业、班
实验地点指导教师实验时间
一、实验目的及要求
1. 熟悉队列的基本概念;
2. 掌握队列的链式表存储结构;
3.掌握队列的应用。
二、实验设备(环境)及要求
微型计算机;
windows 操作系统;
Microsoft Visual Studio 6.0集成开发环境。
三、实验内容与步骤
1.C++的库函数中已经实现了队列,引用方法为#include
①创建一个队列。
②将a、b、c、d、e、f依次入队。
③若队列不为空,将元素出队并打印输出。
2.以下的链式队列采用队头指针和队尾指针分别跟踪队列的头尾两端,请删除队尾指针,只使用队头指针实现队列的初始化、入队、出队和销毁队列。
#include
#include
#define ERROR 1
#define OK 0
#define OVERFLOW 1
typedef int QElemType;
typedef int Status;
//用 e 返回其值,并返回OK;否则返回ERROR
QueuePtr p;
if (Q.front == Q.rear)
return ERROR;
p = Q.front->next;
e = p->data;
Q.front->next = p->next;
if (Q.rear == p)
Q.rear = Q.front;
free (p);
return OK;
}
int main()
{
int i,n=10;
QElemType e;
LinkQueue Q;
InitQueue(Q); //初始化队列
printf("元素入队");
for(i=0;i { printf(" %d ",i); EnQueue(Q,i); //元素入队 } printf("\n元素出队"); for(i=0;i { DeQueue(Q,e); //元素出队 printf(" %d ",e); } DestroyQueue(Q); return 0; } 3.以下的循环队列采用空一个空间的方式来识别队列满与空,请修改程序,引入一个变量追踪循环队列被使用的空间数,从而达到100%队列空间可用。 #include #include #define ERROR 1 #define OK 0 printf("元素入队列"); for(i=0 ; i<10; i++) { printf(" %d ",j); EnQueue(S,j); //元素入队列 j++; } printf("\n元素出队列"); for(i=0 ; i<10; i++) { DeQueue(S,j); //元素出队列 printf(" %d ",j); } } 以下题目为选做题: 4.参考P61-62的代码用链式表实现队列,并在主函数中测试。 四、实验结果与数据处理 详细记录程序在调试过程中出现的问题及解决方法。记录程序执行的结果(贴图)。 五、分析与讨论 对上机实践结果进行分析,上机的心得体会。 六、教师评语 签名: 日期: 成绩 附源程序清单:1 1 #include #include #include using namespace std; int main(){ queue int i; char f[5],m; for(i=0;i<5;i++) { scanf("%c",&f[i]); q.push(f[i]); } for(i=0;i<5;i++) { printf("%c ",q.front()); q.pop(); } return 0; } 2 #include #include #define ERROR 1 #define OK 0 #define OVERFLOW 1 typedef int QElemType; typedef int Status; typedef struct QNode {// 结点类型 QElemType data; struct QNode *next; }QNode,*QueuePtr; typedef struct { // 链队列类型 QueuePtr front; // 队头指针 }LinkQueue; Status InitQueue (LinkQueue &Q) { // 构造一个空队列Q Q.front=(QueuePtr)malloc(sizeof(QNode)); if (!Q.front)