




免费预览已结束,剩余3页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一实验项目名称 循环队列和链式队列的创建二、实验目的1、掌握队列的特点(先进先出FIFO)及基本操作,如入队、出队等,2、队列顺序存储结构、链式存储结构和循环队列的实现,以便在实际问题背景下灵活应用。三、实验内容1链式队列的实现和运算2循环队列的实现和运算四、主要仪器设备及耗材VC+6.0运行环境实现其操作五程序算法(1) 循环队列操作的算法1进队列Void enqueue (seqqueue &q, elemtype x) if (q.rear+1)%maxsize = = q.front) cout出队列Void dlqueue(seqqueue &q ) if (q.rear= =q.front) cout取对头元素elemtype gethead(seqqueue q ) if (q.rear= =q.front) cout判队列空否 int empty(seqqueue q ) if (q.rear= =q.front) reurn 1;else return 0; (2).链队列操作的算法1.链队列上的初始化 void INIQUEUE( linkqueue &s) link *p; p=new link; p-next=NULL; /p是结构体指针类型,用- s.front=p; /s是结构体变量,用. s.rear=p; /头尾指针都指向头结点2.入队列void push(linkqueue &s, elemtype x) link *p; /p是结构体指针类型,用- p=new link; p-data=x; p-next=s.rear-next; /s是结构体变量,用.s.rear-next=p; s.rear=p; /插入最后3判队空int empty( linkqueue s ) if (s.front= =s.rear) return 1; else return 0;4.取队头元素 elemtype gethead( linkqueue s ) if (s.front= =s.rear) return NULL; else retuen s.front-next-data;5.出队列 void pop(linkqueue &s) link *p; p=s.front-next;if (p-next= =NULL)/链队列中只有一个元素,需要修改rear指针 s.front-next=NULL; s.rear=s.front;else s.front-next =p-next;/rear不用变delete (p);六.程序源代码a. 循环队列源代码#include#define MAXN 20struct seqchar queueMAXN;int front , rear; ;void iniq(seq &q)q.front=q.rear=MAXN-1;void enq(seq &q,char x)if(q.rear+1)%MAXN=q.front)coutoverflow;else q.rear=(q.rear+1)%MAXN; q.queueq.rear=x;/return(0);void dlq(seq &q)if (q.rear = q.front)coutunderflow;elseq.front=(q.front+1)%MAXN;int gethead(seq &q) /取队头元素 if (q.rear = q.front) /判断是否队列为空coutunderflow;elsereturn q.queue(q.front+1)%MAXN;main()seq q;int i,y;iniq(q);cout输入元素入队0为止i;while(i)enq( q,i);cini;y=gethead( q);cout队头为=yendl;dlq( q);y=gethead( q);cout执行一次删除队头后,队头为=yendl;b. 链队列的源代码#include typedef struct QNode char data; QNode *next;QNode,*QueuePtr;typedef struct QueuePtr front; QueuePtr rear;LinkQueue;InitQueue(LinkQueue &Q) Q.front=Q.rear=new QNode;Q.front-next=NULL;return 0;EnQueue(LinkQueue &Q,char e)QueuePtr p; p=new QNode;p-data=e;p-next=NULL;Q.rear-next=p;Q.rear=p;return 0;void disp(LinkQueue &Q) /打印队列QueuePtr p;p=Q.front-next;while(p!=NULL) coutdata; p=p-next;DeQueue(LinkQueue &Q,char &e) QueuePtr p; if(Q.front=Q.rear)return 1;p=Q.front-next;e=p-data;Q.front-next=p-next;if(Q.rear=p)Q.rear=Q.front;delete p;return 0;void main() LinkQueue Q;char e,e1; InitQueue(Q);cout输入队列元素,0时结束:e; while(e!=0)EnQueue(Q,e);cine;cout队列为:endl;disp(Q);DeQueue(Q,e1);coutendl执行一次删除队头,删除的元素是:e1endl;cout队列为:endl;disp(Q);coutendl;六.程序输入数据及实验结果a.循环队列实验结果c. 链队列实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 知识产权保护建议报告
- 2025年中国栗子罐头市场前景预测及投资规划研究报告
- 污水处理工基础技能培训手册
- 2022-2027年中国小麦蛋白行业市场调研及未来发展趋势预测报告
- 2025年中国嘉兴房地产行业市场全景分析及投资前景展望报告
- 垃圾桶产品比较分析报告
- 中国粗纱机行业投资研究分析及发展前景预测报告
- LED动感灯箱画项目投资可行性研究分析报告(2024-2030版)
- 农村能源开发利用人员安全技术操作规程
- 中职生文化传媒职业生涯规划教学计划
- 煤矿地面工种培训
- 服务认证培训课件
- 2025年事业单位公开招聘考试(D类)《职业能力倾向测验》新版真题卷(附详细解析)
- 2025《中华人民共和国监察法实施条例》专题课件
- 国家教育事业发展“十五五”规划纲要
- T/CAS 612-2022碳中和管理体系要求
- 香囊课件小学生
- 2024婚姻家事法律服务业白皮书
- 二氧化硅材料制备与性能表征技术研究
- 学校内部控制培训
- 2025年外贸业务员考试试题及答案
评论
0/150
提交评论