![数据结构-实验队列的实现_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-5/27/ab1b6221-bef3-447a-a40b-8bb142ddfb24/ab1b6221-bef3-447a-a40b-8bb142ddfb241.gif)
![数据结构-实验队列的实现_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-5/27/ab1b6221-bef3-447a-a40b-8bb142ddfb24/ab1b6221-bef3-447a-a40b-8bb142ddfb242.gif)
![数据结构-实验队列的实现_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-5/27/ab1b6221-bef3-447a-a40b-8bb142ddfb24/ab1b6221-bef3-447a-a40b-8bb142ddfb243.gif)
![数据结构-实验队列的实现_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-5/27/ab1b6221-bef3-447a-a40b-8bb142ddfb24/ab1b6221-bef3-447a-a40b-8bb142ddfb244.gif)
![数据结构-实验队列的实现_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-5/27/ab1b6221-bef3-447a-a40b-8bb142ddfb24/ab1b6221-bef3-447a-a40b-8bb142ddfb245.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、贵州大学实验报告学院: 计信学院 专业: 网络工程 班级:091班姓名XXX学号XXXXXXXXX实验组5实验时间2011.12.02指导教师XXXXX成绩实验项目名称队列的实现 实验目的1掌握队列的思想及其存储实现。 2掌握队列的常见算法的程序实现。实验原理1. 根据实验内容编程,上机调试、得出正确的运行程序。2. 编译运行程序,观察运行情况和输出结果。3. 写出实验报告(包括源程序和运行结果)。实验内容1采用链式存储实现队列的初始化、入队、出队操作。 2采用顺序存储实现循环队列的初始化、入队、出队操作。 3在主函数中设计一个简单的菜单,分别测试上述算法。实验数据及其步骤链式存储队列:#in
2、clude#includeusing namespace std;typedef int ElemType;struct QueueElemType *queue;int front,rear,len;int Maxsize;void Initqueue(Queue &Q) cout队列初始化操作endl;Q.Maxsize=10;Q.queue=new ElemTypeQ.Maxsize;Q.front=Q.rear=0;void Enqueue(Queue &Q,ElemType item)if(Q.rear+1)%Q.Maxsize=Q.front)int k=sizeof(ElemTy
3、pe);Q.queue=(ElemType*)realloc(Q.queue,2*Q.Maxsize*k);if(Q.rear!=Q.Maxsize-1)for(int i=0;i=Q.rear;i+)Q.queuei+Q.Maxsize=Q.queuei;Q.rear+=Q.Maxsize;Q.Maxsize=2*Q.Maxsize;Q.rear=(Q.rear+1)%Q.Maxsize;Q.queueQ.rear=item;ElemType Outqueue(Queue &Q)if(Q.front=Q.rear)cout队列已空,无法删除!endl;exit(1);Q.front=(Q.f
4、ront+1)%Q.Maxsize;return Q.queueQ.front;struct LNodeElemType data;LNode *next;struct LinkQueueLNode *front;LNode *rear;void init(LinkQueue &HQ) cout链式队列初始化data=item;newptr-next=NULL;if(HQ.rear=NULL)HQ.front=HQ.rear=newptr;else HQ.rear=HQ.rear-next=newptr;ElemType outq(LinkQueue &HQ)if(HQ.front=NULL)
5、cout链队为空,无法删除data;LNode *p=HQ.front;HQ.front=p-next;if(HQ.front=NULL)HQ.rear=NULL;delete p;return temp;void main()ElemType x,y;int i;int a4=1,3,5,7;cout原始数组数据endl;for(i=0;i4;i+)coutai ;coutendl;Queue q1; cout操作一endl;Initqueue(q1);for(i=0;i4;i+)Enqueue(q1,ai);cout输入要进队列的元素:x; Enqueue(q1,x); cout出队操作e
6、ndl; for(i=0;i5;i+) coutOutqueue(q1) ; coutendl; LinkQueue q2; cout操作二endl; init(q2); for(i=0;i4;i+) enq(q2,ai); cout输入要进链队列的元素y; enq(q2,y); cout出链队操作endl; for(i=0;i5;i+) coutoutq(q2) ; coutendl;运行结果如下:顺序存储队列:#include#include#define OVERFLOW -1#define OK 1#define ERROR 0#define MAXSIZE 100typedef st
7、ructint *elem;/队列存储空间int front;int rear;SqQueue;/判断选择是否正确int menu_select()int sn;for(;)scanf(%d,&sn);if(sn6)printf(nt输入错误,请重新输入n);elsebreak;return sn;int InitQueue(SqQueue &Q)Q.elem=(int *)malloc(MAXSIZE*sizeof(int);if(!Q.elem)exit(OVERFLOW);Q.front=Q.rear=-1;for(int i=0;iMAXSIZE;i+)Q.elemi=-1;retur
8、n OK;int QueueLength(SqQueue Q)return (Q.rear-Q.front+MAXSIZE)%MAXSIZE;void Display(SqQueue Q)for(int i=0;i=QueueLength(Q);i+)if(Q.elemi!=-1)printf(%d ,Q.elemi);printf(n);int EnQueue(SqQueue &Q,int e)Q.rear=(Q.rear+1)%MAXSIZE;if(Q.rear=Q.front)return ERROR;Q.elemQ.rear=e;return OK;int DeQueue(SqQueu
9、e &Q,int &e)if(Q.front=Q.rear)return ERROR;e=Q.elemQ.front+1;Q.elemQ.front+1=-1;Q.front=(Q.front+1)%MAXSIZE;return OK;void main()SqQueue Q;InitQueue(Q);int elem,e;printf(请输入队列元素(以0结束):n);scanf(%d,&elem);while(elem!=0)EnQueue(Q,elem);scanf(%d,&elem);printf(队列为:n);Display(Q);printf(1.初始化一个队列;n2.入队;n3.
10、出队;n4.显示队列的所有元素;n5.队列长度:n6.结束;n);while(1)switch(menu_select()case 1:printf(请输入队列元素(以0结束):n);scanf(%d,&elem); while(elem!=0)EnQueue(Q,elem); scanf(%d,&elem);printf(队列为:n);Display(Q);fflush(stdin);break; case 2:scanf(%d,&elem);EnQueue(Q,elem);printf(队列为:n);Display(Q);fflush(stdin);break;case 3:DeQueue(Q,elem);printf(队列为:n);Display(Q);break;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度高科技企业担保合同印花税减免政策
- 2025年度高速公路服务区车位租赁及管理协议
- 2025年汽车自动采样设备项目合作计划书
- 2025年食品、饮料及烟草批发服务项目合作计划书
- 开展年度企业经验分享计划
- 培养创新思维的个人计划
- 引导公众节水的宣传活动设计计划
- 仓库管理软件的选择与应用计划
- 实施自动化提高生产效率计划
- 班级团体比赛的筹备与举办计划
- 电网工程设备材料信息参考价(2024年第四季度)
- 人教版道德与法治五年级下册《第一单元 我们一家人》大单元整体教学设计2022课标
- 国家病案质控死亡病例自查表
- 部编版小学语文二年级下册第三单元集体备课教材分析
- 部编人教版四年级下册道德与法治全册教案
- 健康保险学PPT完整全套教学课件
- 大学生心理健康教育高职PPT完整全套教学课件
- 道路运输危险货物安全卡(LNG液化天然气)
- 地质勘查钻探作业安全风险分布图及分级管控“三清单”
- 中国农业银行非零售客户评级系统用户操作手册
- 商业广场项目招商提成(激励)方案
评论
0/150
提交评论