


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、队列实验报告一实验工程名称循环队列和链式队列的创立 二、实验目的 1、掌握队列的特点(先进先出 FIFO)及根本操作,如入队、出队等, 2、队列顺序存储构造、链式存储构造和循环队列的实现,以便在实际问题背景下灵敏应用。三、实验内容 1链式队列的实现和运算 2循环队列的实现和运算 四、主要仪器设备及耗材 VC+6.0 运行环境实现其操作 五程序算法 (1) 循环队列操作的算法 1> 进队列 Voidenqueue (seqqueue&q, elemtype_) if (q.rear+1)%ma_size = = q.front)cout<<”overflow”; els
2、eq.rear=(q.rear+1)%ma_size; /编号加 1 或循环回第一个单元q.queueq.rear=_; 2> 出队列 Voiddlqueue(seqqueue&q ) if (q.rear= =q.front)cout<<”underflow”;elseq.front =(q.front+1)%ma_size; 3> 取对头元素 elemtypegethead(seqqueue q ) if(q.rear= =q.front) cout<<”underflow”;returnNULL;elsereturnq.queue(q.fron
3、t+1)%ma_size;/front 指向队头前一个位置 4> 判队列空否int empty(seqqueue q ) if(q.rear= =q.front)reurn 1;else return 0; 2.链队列操作的算法 1> .链队列上的初始化voidINIQUEUE( linkqueue&s)link_p;p=newlink;p->ne_t=NULL;/p 是构造体指针类型,用->s.front=p;/s 是构造体变量,用. s.rear=p;/头尾指针都指向头结点 2>.入队列 voidpush(linkqueue &s, elemt
4、ype_) link_p;/p 是构造体指针类型,用->p=newlink;p->data=_;p->ne_t=s.rear->ne_t;/s 是构造体变量,用.s.rear->ne_t=p;s.rear=p;/插入最后 3> 判队空 intempty( linkqueues ) if (s.front= =s.rear) return 1;else return 0; 4>.取队头元素elemtypegethead( linkqueue s ) if (s.front= =s.rear)returnNULL;elseretuens.front->
5、;ne_t->data; 5>.出 出 队列voidpop(linkqueue &s) link_p;p=s.front->ne_t; if (p->ne_t= =NULL)/链队列中只有一个元素,需要修改 rear 指针s.front->ne_t=NULL;s.rear=s.front; elses.front->ne_t =p->ne_t;/rear 不用变 delete (p); 六 六.程序代码 a.循环队列代码 #include<iostream.h> #define MA_N20 struct seq char queu
6、eMA_N; int front, rear;void iniq(seq&q) q.front=q.rear=MA_N-1; void enq(seq &q,char _) if(q.rear+1)%MA_N=q.front)cout<<“overflow”;else q.rear=(q.rear+1)%MA_N;q.queueq.rear=_; /return(0); void dlq(seq &q) if (q.rear = q.front) cout<<“underflow”; else q.front=(q.front+1)%MA_N;
7、int gethead(seq &q)/取队头元素if (q.rear = q.front)/判断是否队列为空 cout<<“underflow”; else return q.queue(q.front+1)%MA_N; main seqq; int i,y; iniq(q); cout<<“输入元素入队 0 为止”<<endl; cin>>i; while(i) enq( q,i); cin>>i; y=gethead( q); cout<<“队头为=”<<y<<endl; dlq( q
8、); y=gethead( q); cout<<“执行一次删除队头后,队头为=”<<y<<endl; b.链队列的代码 #include <iostream.h>typedef struct QNode char data;QNode _ne_t;QNode,_QueuePtr;typedef struct QueuePtr front; QueuePtr rear; LinkQueue;InitQueue(LinkQueue &Q) Q.front=Q.rear=new QNode;Q.front->ne_t=NULL;retur
9、n 0; EnQueue(LinkQueue &Q,char e) QueuePtr p;p=new QNode;p->data=e;p->ne_t=NULL;Q.rear->ne_t=p;Q.rear=p;return 0; void disp(LinkQueue &Q) /打印队列QueuePtr p;p=Q.front->ne_t;while(p!=NULL)cout<<p->data<<“->”;p=p->ne_t;DeQueue(LinkQueue &Q,char &e) QueuePt
10、r p;if(Q.front=Q.rear)return 1;p=Q.front->ne_t; e=p->data;Q.front->ne_t=p->ne_t;if(Q.rear=p)Q.rear=Q.front;delete p;return 0; void mainLinkQueue Q;char e,e1;InitQueue(Q);cout<<“输入队列元素,0 时完毕:”<<endl;cin>>e;while(e!="0")EnQueue(Q,e);cin>>e;cout<<“队列为:”<<endl;disp(Q);DeQueue(Q,e1);cout<<endl<<“执行一次删除队头,删除的元素是:”<<e1<<endl;cout<<“队列为:”<<endl;disp(Q);cout<<endl; 六.程序
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消保知识培训竞赛简报课件
- 2025嘉兴市鑫茂物资调剂市场有限责任公司招聘1人模拟试卷及答案详解(新)
- 2025年度河南豫矿资源开发集团有限公司所属企业招聘13人模拟试卷完整答案详解
- 2025湖南资兴市面向本市农村订单定向医学生、基层医疗卫生机构本土化专科层次人才培养医学生考核招聘15人模拟试卷及答案详解(新)
- 2025年甘肃省天水天光半导体有限责任公司招聘18人考前自测高频考点模拟试题及答案详解(全优)
- 2025广西崇左市人民检察院公开招聘机关文员4人模拟试卷及答案详解1套
- 2025贵州遵义市赤水市丹投教育科技有限公司招聘财务人员招聘1人考前自测高频考点模拟试题及答案详解参考
- 2025辽宁铁岭市调兵山市招聘临床医师10人考前自测高频考点模拟试题及答案详解(有一套)
- 涂料专业知识培训课件
- 2025春季新疆石河子大学第一附属医院、石河子大学附属中医医院(兵团中医医院)校园招聘同工同酬52人考前自测高频考点模拟试题及完整答案详解
- 临床带教老师
- 课题2 碳的氧化物(第1课时)教学课件九年级化学上册人教版2024
- 2024年导游资格证考试-浙江省导游文化基础知识考试近5年真题集锦(频考类试题)带答案
- GB/T 4732.2-2024压力容器分析设计第2部分:材料
- 部编版《道德与法治》六年级上册第9课《知法守法 依法维权》教学课件
- 中国近现代史纲要(河北工业大学)智慧树知到答案2024年河北工业大学
- SL+290-2009水利水电工程建设征地移民安置规划设计规范
- 劳务投标书技术标
- 2012建设工程造价咨询成果文件质量标准
- 多模式数据融合在金融预测中的应用
- 辽宁省大连市外研版七年级上册 专项 五选四 短文选句 模拟练习
评论
0/150
提交评论