最新队列操作实验报告范文word版 12页.docx
- 文档编号:4245395
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:10
- 大小:17.09KB
最新队列操作实验报告范文word版 12页.docx
《最新队列操作实验报告范文word版 12页.docx》由会员分享,可在线阅读,更多相关《最新队列操作实验报告范文word版 12页.docx(10页珍藏版)》请在冰豆网上搜索。
最新队列操作实验报告范文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<<"**********************************"< cout<<"请输入要入队的元素"< =0){}cout<<"队头的元素为"< break;temp=a.DeQueue();if(temp! =0){}cout<<"出队的元素为"< break;booltemp;temp=a.isEmpty();if(temp){cout<<"空队"< }}break;}while(index);return0; 2、链队列的实现: #include constintSize=100;typedefcharDataType;structNode { }; classLinkQueue{ public: LinkQueue(){}~LinkQueue(){}voidEnQueue(DataTypex){}DataTypeGetQueue()//取? 队ó头? {if(isEmpty()){}cout<<"队ó列为a空? "< 请? 一? 个? 数簓据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))//判断顺序表是否创建成功 {
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新队列操作实验报告范文word版 12页 最新 队列 操作 实验 报告 范文 word 12