当前位置:
文档之家› 数据结构实验报告-队列的操作
数据结构实验报告-队列的操作
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);
}
}
运行结果截图:
1.
四、分析与讨论
对上机实践结果进行分析,上机的心得体会。
五、教师评语
签名:
日期:
成绩
附源程序清单:
1.#include<iostream>
#include<queue>
using namespace std;
void main()
{
queue<char> cque;
char c;
typedef struct {
QElemType *base; // 动态分配存储空间
int front; // 头指针,若队列不空,指向队列头元素
int rear; // 尾指针,若队列不空, //指向队列尾元素 的下一个位置
}SqQueue;
Status InitQueue (SqQueue &Q) { // 构造一个空队列Q
if ((Q.rear+1) % MAXQSIZE == Q.front)
return ERROR; //队列满
Q.base[Q.rear] = e;
Q.rear = (Q.rear+1) % MAXQSIZE;
return OK;
}
Status DeQueue (SqQueue &Q, QElemType &e) { // 若队列不空,则删除Q的队头元素,用e返回其值,并返回OK; 否则返回ERROR
《数据结构》实验报告
实验序号:5实验项目名称:队列的操作
学 号
姓 名
专业、班
实验地点
指导教师
实验时间
一、实验目的及要求
1. 熟悉队列的基本概念;
2.掌握队列的链式表存储结构;
3.掌握队列的应用。
二、实验设备(环境)及要求
微型计算机;
windows操作系统;
Microsoft Visual Studio 6.0集成开发环境。
Q.base = (QElemType *) malloc (MAXQSIZE *sizeof (QElemType));
if (!Q.base) exit (OVERFLOW); //存储分配失败
Q.front = Q.rear = 0;
return OK;
}
Status EnQueue (SqQueue &Q, QElemType e) { /步骤
1.C/C++的库函数中已经实现了队列,引用方法为#include<queue>,请上网查阅资料,完成习题。
①创建一个队列。②将a、b、c、d、e、f依次入队。③若队列不为空,将元素出队并打印输出。
2.以下的循环队列采用空一个空间的方式来识别队列满与空,请修改程序,设置一个标志域tag,并以tag的值为0或1来区分队头指针front和队尾指针rear相同时的队列状态是“空”还是“满”。从而达到100%队列空间可用。
#include <stdlib.h>
#include <stdio.h>
#define ERROR 1
#define OK 0
#define OVERFLOW 1
typedef int QElemType;
typedef int Status;
#define MAXQSIZE 100 //最大队列长度
if (Q.front == Q.rear) return ERROR;
e = Q.base[Q.front];
Q.front = (Q.front+1) % MAXQSIZE;
return OK;
}
void main()
{
int i;
QElemType j = 0;
SqQueue S;
InitQueue(S); //初始化队列
int n = 6;
while (n)
{
cin >> c;
cque.push(c);
n--;
}
while (!cque.empty())
{
cout << cque.front()<< endl;cque.pop();
}
}