文档介绍:队列存储实践报告
队列存储与操作实验报告
实验四队列存储与操作
一. 实验目的
1、掌握队列顺序存储结构(循环队列)及实现及操作
2、掌握队列的链接存储结构及实现及操作
二. 实验内容
1、建立一个空顺序存储结构队列; 对已建立的队列进行插入、删除、取队头元素等基本操作。
2、建立一个空链式存储结构队列; 对已建立的队列进行插入、删除、取队头元素等基本操作。
三、详细设计:
1、顺序队列的实现:
#includeiostream
using namespace std;
const int Size=100;
typedef char DataType;
class CirQueue
{
public:
CirQueue() { } ~CirQueue(){} void EnQueue(DataType x) {if((rear+1)%Size==front) {} cout队列已经满了endl; return; front=rear=0;//构造队列,初始化一个空的循环队列,front和rear指向
};
} data[rear]=x; coutx已入队endl; return; DataType GetQueue()//取队头{ } DataType DeQueue() { } int isEmpty()//是否为空{ } DataType data[Size]; int front,rear; if(front==rear) { } else{ } return 0; return 1; if(isEmpty()) {} front=(front+1)%Size;//队头指针在循环的意义下加 return data[front]; cout队列为空endl; return 0; if(isEmpty()) {} int i; i=(front+1)%Size; return data[i]; cout队列为空endl; return 0; private:
int main()
{
int index; DataType temp; do {cout**********************************endl; cout1、入队操作endl; cout2、取队头操作endl; cout3、出队操作endl; cout4、判断队列是否为空endl; cout5、退出endl; cout**********************************endl; cinindex; if(index==5){return 0;} switch(index) { case 1:cout请输入要入队的元素endl; cintemp; (temp); break; temp=(); if(temp!=0) { } cout队头的元素为temp endl;case 2: break; temp=(); if(temp!=0) { } cout出队的元素为temp endl; case 3: break; bool temp; temp=(); if(temp) {cout空队endl; cout非空队endl; }else{ case 4:
} } break; }while(index); return 0;
2、链队列的实现: #includeiostream using namespace std;
const int Size=100; typedef char DataType; struct Node
{
};
class LinkQueue {
public:
LinkQueue() { } ~LinkQueue(){} void EnQueue(DataType x) {} DataType GetQueue()//取?队
ó头? {if(isEmpty()) {} cout队ó列为a空?endl; return 0; auto s=new Node; s-data=x; s-next=NULL;//申Θ?请?一?个?数簓据Y域?为aX的?结á点?s rear-next=s; rear=s; auto head=new Node; head-next=NULL; front=rear=head; DataType data; Node *next;
};} return front-next-data; DataType DeQueue() { } int isEmpty()//是?否?为a空