试验--循环队列的基本操作及应用.docx

试验--循环队列的基本操作及应用.docx

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构实验报告 ----试验三循环队列的基本操作及应用 问题描述: 数据结构设计:#define MAXQSIZE 10 struct SqQueue(QElemType *base;Int front;int rear;}; 数据结构设计: #define MAXQSIZE 10 struct SqQueue ( QElemType *base; Int front; int rear; }; //最大队歹U长度 //初始化动态分配存储空间 //头指针,若队列不空,只想对列头元素 〃尾指针,若队列不空,指向队列尾元素的 //下一个位置 三、功能设计: 〃构造一个空队列Q〃销毁队歹0 Q,Q不再存在//将 〃构造一个空队列Q 〃销毁队歹0 Q,Q不再存在 //将Q活为空队列 〃若队列Q为空队列,WJ //返回TRUE否贝U返回FALSE //返回Q的元素个数,即队列长度 Status InitQueue(SqQueue &Q) Status DestroyQueue(SqQueue &Q) Status ClearQueue(SqQueue &Q) Status QueueEmpty(SqQueue Q) int QueueLength(SqQueue Q) Status GetHead(SqQueue Q,QElemType &e)ff 队歹0不空,则用 e 返回 Q 的对 〃头元素,并返回OK,否则返回ERROR Status EnQueue(SqQueue &Q,QElemType e糖入元素e为Q的新的队尾元素 Status DeQueue(SqQueue &Q,QElemType &e淅队歹0不空,则删除 Q 的队头 〃元素,用e返回其值,并返回 //OK,否贝U返回ERROR Status QueueTraverse(SqQueue Q,void(*vi)(QElemType))// 队头到队尾依次 〃对队列Q中每个元素调用函数 //vi()。一旦vi失败,则操作失败 四、源程序: // c1.h (程序名) #include<string.h> #include<ctype.h> #include<malloc.h> // malloc()等 #include<limits.h> // INT_MAX 等 #include<stdio.h> // EOF(=A^ F6),NULL #include<stdlib.h> // atoi() #include<io.h> // eof() #include<math.h> // floor(),ceil(),abs() #include<process.h> // exit() #include<iostream.h> // cout,cin //函数结果状态代码 #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0 #define INFEASIBLE -1 // #define OVERFLOW -2因为在math.h中已定义OVERFLOW值为3,故去掉此 // typedef int Status; // Status是函数的类型,其值是函数结果状态代码,如 OK等 typedef int Boolean; // Boolean 是布尔类型,其值是 TRU攻 FALSE // c3-3.h #define MAXQSIZE 10 struct SqQueue ( QElemType *base; int front; int rear; }; #include"c1.h" typedef int QElemType; #include"c3-3.h" Status InitQueue(SqQueue &Q) ( 〃构造一个空队列Q Q.base=(QElemType *)malloc(MAXQSIZE*sizeof(QElemType)); if(!Q.base)//储存分配失败 exit(OVERFLOW); Q.front=Q.rear=0; return OK; } Status DestroyQueue(SqQueue &Q) (//销毁队歹0 Q,Q不再存在 if(Q.base) free(Q.base); Q.base=NULL; Q.front=Q.rear=0; return OK; Status ClearQueue(SqQueue &Q) (//将Q活为空队列 Q.front=Q.rear=0; return OK; } Status QueueEmpty(SqQueue Q) (//若队列Q为空队列,则返回TREU否则返回FALSE if(Q.front==Q.rear

文档评论(0)

tangtianxu1 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档