最新队列操作实验报告范文word版 12页.docx

上传人:b****4 文档编号:4245395 上传时间:2022-11-28 格式:DOCX 页数:10 大小:17.09KB
下载 相关 举报
最新队列操作实验报告范文word版 12页.docx_第1页
第1页 / 共10页
最新队列操作实验报告范文word版 12页.docx_第2页
第2页 / 共10页
最新队列操作实验报告范文word版 12页.docx_第3页
第3页 / 共10页
最新队列操作实验报告范文word版 12页.docx_第4页
第4页 / 共10页
最新队列操作实验报告范文word版 12页.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

最新队列操作实验报告范文word版 12页.docx

《最新队列操作实验报告范文word版 12页.docx》由会员分享,可在线阅读,更多相关《最新队列操作实验报告范文word版 12页.docx(10页珍藏版)》请在冰豆网上搜索。

最新队列操作实验报告范文word版 12页.docx

最新队列操作实验报告范文word版12页

本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!

==本文为word格式,下载后可方便编辑和修改!

==

队列操作实验报告

篇一:

栈和队列基本操作实验报告

实验二堆栈和队列基本操作的编程实现

【实验目的】

堆栈和队列基本操作的编程实现

要求:

堆栈和队列基本操作的编程实现(2学时,验证型),掌握堆栈和队列的建立、进栈、出栈、进队、出队等基本操作的编程实现,存储结构可以在顺序结构或链接结构中任选,也可以全部实现。

也鼓励学生利用基本操作进行一些应用的程序设计。

【实验性质】

验证性实验(学时数:

2H)

【实验内容】

内容:

把堆栈和队列的顺序存储(环队)和链表存储的数据进队、出队等运算其中一部分进行程序实现。

可以实验一的结果自己实现数据输入、数据显示的函数。

利用基本功能实现各类应用,如括号匹配、回文判断、事物排队模拟、数据逆序生成、多进制转换等。

【实验分析、说明过程】

【思考问题】

【实验小结】(总结本次实验的重难点及心得、体会、收获)

【附录-实验代码】

篇二:

队列存储与操作实验报告

实验四队列存储与操作

一.实验目的

1、掌握队列顺序存储结构(循环队列)及实现及操作

2、掌握队列的链接存储结构及实现及操作

二.实验内容

1、建立一个空顺序存储结构队列;对已建立的队列进行插入、删除、取队头元素等基本操作。

2、建立一个空链式存储结构队列;对已建立的队列进行插入、删除、取队头元素等基本操作。

三、详细设计:

1、顺序队列的实现:

#include

usingnamespacestd;

constintSize=100;

typedefcharDataType;

classCirQueue

{

public:

CirQueue(){}~CirQueue(){}voidEnQueue(DataTypex){if((rear+1)%Size==front){}cout<<"队列已经满了"<

};

}data[rear]=x;cout<

intmain()

{

intindex;DataTypetemp;do{cout<<"**********************************"<>index;if(index==5){return0;}switch(index){case1:

cout<<"请输入要入队的元素"<>temp;a.EnQueue(temp);break;temp=a.GetQueue();if(temp!

=0){}cout<<"队头的元素为"<

break;temp=a.DeQueue();if(temp!

=0){}cout<<"出队的元素为"<

break;booltemp;temp=a.isEmpty();if(temp){cout<<"空队"<

}}break;}while(index);return0;

2、链队列的实现:

#includeusingnamespacestd;

constintSize=100;typedefcharDataType;structNode

{

};

classLinkQueue{

public:

LinkQueue(){}~LinkQueue(){}voidEnQueue(DataTypex){}DataTypeGetQueue()//取?

队ó头?

{if(isEmpty()){}cout<<"队ó列为a空?

"<data=x;s->next=NULL;//申Θ?

请?

一?

个?

数簓据Y域?

为aX的?

结á点?

srear->next=s;rear=s;autohead=newNode;head->next=NULL;front=rear=head;DataTypedata;Node*next;

};}returnfront->next->data;DataTypeDeQueue(){}intisEmpty()//是?

否?

为a空?

{}Node*front,*rear;//队ó头?

和í队ó尾2指?

针?

if(front==rear){}else{}return0;return1;if(isEmpty()){}autop=newNode;//用?

于?

暂Y存?

队ó头?

元a素?

DataTypex;//用?

于?

暂Y存?

队ó头?

数簓据Yp=front->next;x=p->data;front->next=p->next;if(p->next==NULL){}deletep;returnx;rear=front;cout<<"队ó列为a空?

"<

intmain(){

LinkQueuea;intindex;DataTypetemp;do{cout<<"**********************************"<

队ó操ù作痢?

<

篇三:

队列存储与操作实验报告

实验四队列存储与操作

一、实验目的

1、掌握队列的特点(先进先出FIFO)及基本操作,如入队、出队等,队列顺序存储结构、链式存储结构和循环队列的实现,以便在实际问题背景下灵活运用。

二、实验内容

1.顺序队列的实现和运算

2.链式队列的实现和运算

3.循环队列的实现和运

三、详细设计:

1、顺序队列的实现:

#include

usingnamespacestd;

constintSize=100;

typedefcharDataType;

classCirQueue

{

public:

CirQueue()

{

front=rear=0;//构造队列,初,front和rear指向

}

~CirQueue(){}

voidEnQueue(DataTypex)

{

if((rear+1)%Size==front)

{

cout<<"队列已经满了"<

return;

}

rear=(rear+1)%Size;//队尾指针在循环的意义下加

data[rear]=x;

cout<

return;

}

DataTypeGetQueue()//取队头

{

if(isEmpty())

{

cout<<"队列为空"<

return0;

}

inti;

i=(front+1)%Size;

returndata[i];

}

DataTypeDeQueue()

{

if(isEmpty())

{

cout<<"队列为空"<

return0;

}

front=(front+1)%Size;//队头指针在循环的意义下加

returndata[front];

}

intisEmpty()//是否为空

{

if(front==rear)

{

return1;

}

else{

return0;

}

}

private:

DataTypedata[Size];

intfront,rear;

};

intmain()

{

CirQueuea;

intindex;

DataTypetemp;

do

{

cout<<"**********************************"<

cout<<"1、入队操作"<

cout<<"2、取队头操作"<

cout<<"3、出队操作"<

cout<<"4、判断队列是否为空"<

cin>>index;

if(index==5){return0;}

switch(index)

{

case1:

cout<<"请输入要入队的元素"<

cin>>temp;

a.EnQueue(temp);

break;

case2:

temp=a.GetQueue();

if(temp!

=0)

{

cout<<"队头的元素为"<

}

break;

case3:

temp=a.DeQueue();

if(temp!

=0)

{

cout<<"出队的元素为"<

}

break;

case4:

booltemp;

temp=a.isEmpty();

if(temp)

{

cout<<"空队"<

}else{

cout<<"非空队"<

}

break;

}

}while(index);

return0;

}

2、循环队列的实现:

#include

#include

#defineOK1

#defineERROR0

typedefintStatus;//Status是函数的类型,其值是函数结果状态代码,如OK等typedefintQElemType;

#defineMAXQSIZE100//最大队列长度(对于循环队列,最大队列长度要减1)

typedefstruct

{

QElemType*base;//初始化的动态分配存储空间

intfront;//头指针,若队列不空,指向队列头元素

intrear;//尾指针,若队列不空,指向队列尾元素的下一个位置

}SqQueue;

StatusInitQueue(SqQueue&Q)

{

//构造一个空队列Q,该队列预定义大小为MAXQSIZE

Q.base=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType));

if(!

Q.base)returnERROR;

Q.front=Q.rear=0;

returnOK;

}

StatusEnQueue(SqQueue&Q,QElemTypee)

{

//插入元素e为Q的新的队尾元素

if((Q.rear+1)%MAXQSIZE==Q.front)returnERROR;

Q.base[Q.rear]=e;

Q.rear=(Q.rear+1)%MAXQSIZE;

returnOK;

}

StatusDeQueue(SqQueue&Q,QElemType&e)

{

//若队列不空,则删除Q的队头元素,用e返回其值,并返回OK;否则返回ERROR

if(Q.front==Q.rear)returnERROR;

e=Q.base[Q.front];

Q.front=(Q.front+1)%MAXQSIZE;

returnOK;

}

StatusGetHead(SqQueueQ,QElemType&e)

{

//若队列不空,则用e返回队头元素,并返回OK,否则返回ERROR

if(Q.front==Q.rear)returnERROR;

e=Q.base[Q.front];

returnOK;

}

intQueueLength(SqQueueQ)

{

//返回Q的元素个数

return(Q.rear+MAXQSIZE-Q.front)%MAXQSIZE;

}

StatusQueueTraverse(SqQueueQ)

{

//若队列不空,则从队头到队尾依次输出各个队列元素,并返回OK;否则返回ERROR.

inti;

i=Q.front;

if(Q.front==Q.rear)printf("空队!

");

else{

printf("队列为is:

");

while(i

{

printf("%d",Q.base[i]);

i=i+1;

}

}

printf("\n");

returnOK;

}

intmain()

{

inta;

SqQueueS;

QElemTypex,e;

if(InitQueue(S))//判断顺序表是否创建成功

{

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1