欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2023年6.队列的顺序存储结构循环队列.pdf

    • 资源ID:92406651       资源大小:145.08KB        全文页数:7页
    • 资源格式: PDF        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2023年6.队列的顺序存储结构循环队列.pdf

    队列的顺序存储结构-循环队列(一)#include#include#define OK 1#define ERROR 0 typedef int Status;/Status 是函数的类型,其值是函数结果状态代码,如 OK等 typedef int QElemType;#define MAXQSIZE 100/最大队列长度(对于循环队列,最大队列长度要减 1)typedef struct QElemType*base;/初始化的动态分配存储 空间 int front;/头指针,若队列不空,指向队列头元素 int rear;/尾指针,若队列不空,指向队列尾元素的下一个位置 SqQueue;Status InitQueue(SqQueue&Q)/构造一个空队列 Q,该队列预定义大小为 MAXQSIZE/请补全代码 Q.base=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType);if(!Q.base)return ERROR;Q.front=Q.rear=0;return OK;Status EnQueue(SqQueue&Q,QElemType e)/插入元素 e 为 Q的新的队尾元素/请补全代码 if(Q.rear+1)%MAXQSIZE=Q.front)return ERROR;Q.baseQ.rear=e;Q.rear=(Q.rear+1)%MAXQSIZE;return OK;Status DeQueue(SqQueue&Q,QElemType&e)/若队列不空,则删除 Q的队头元素,用 e 返回其值,并返回 OK;否则返回 ERROR/请补全代码 if(Q.front=Q.rear)return ERROR;e=Q.baseQ.front;Q.front=(Q.front+1)%MAXQSIZE;return OK;Status GetHead(SqQueue Q,QElemType&e)/若队列不空,则用 e 返回队头元素,并返回 OK,否则返回 ERROR/请补全代码 if(Q.front=Q.rear)return ERROR;e=Q.baseQ.front;return OK;int QueueLength(SqQueue Q)/返回 Q的元素个数/请补全代码 return(Q.rear+MAXQSIZE-Q.front)%MAXQSIZE;Status QueueTraverse(SqQueue Q)/若队列不空,则从队头到队尾依次输出各个队列元素,并返回 OK;否则返回 ERROR.int i;i=Q.front;if(Q.front=Q.rear)printf(The Queue is Empty!);/请填空 else printf(The Queue is:);while(i Q.rear)/请填空 printf(%d,Q.basei);/请填空 i=i+1;/请填空 printf(n);return OK;int main()int a;SqQueue S;QElemType x,e;if(InitQueue(S)/判断顺序表是否创建成功,请填空 printf(A Queue Has Created.n);while(1)printf(1:Enter n2:Delete n3:Get the Front n4:Return the Length of the Queuen5:Load the Queuen0:ExitnPlease choose:n);scanf(%d,&a);switch(a)case 1:scanf(%d,&x);if(!EnQueue(S,x)printf(Enter Error!n);/判断入队是否合法,请填空 else printf(The Element%d is Successfully Entered!n,x);break;case 2:if(!DeQueue(S,e)printf(Delete Error!n);/判断出队是否合法,请填空 else printf(The Element%d is Successfully Deleted!n,e);break;case 3:if(!GetHead(S,e)printf(Get Head Error!n);/判断 Get Head是否合法,请填空 else printf(The Head of the Queue is%d!n,e);break;case 4:printf(The Length of the Queue is%d!n,QueueLength(S);/请填空 break;case 5:QueueTraverse(S);/请填空 break;case 0:return 1;队列的顺序存储结构-循环队列(二)#include#include#include#define MAXSIZE 100#define TRUE 1#define FALSE 0 typedef int DataType;typedef struct DataType dataMAXSIZE;int front;/头指针指示器 int rear;/为指针指示器 SeqQueue;/初始化操作 void InitQueue(SeqQueue*Q)/将*Q初始化为一个空的循环队列 Q-front=Q-rear=0;/判断队列是否为空或满 void IsEmpty_full(SeqQueue*Q)if(Q-front=Q-rear)cout 该队列为空 rear+1)%MAXSIZE=Q-front)cout 该队列为满 endl;else cout 该队列既不为空也不为满 rear+1)%MAXSIZE=Q-front)/队列已经满了 return(FALSE);Q-dataQ-rear=x;Q-rear=(Q-rear+1)%MAXSIZE;/重新设置队尾指针 return(TRUE);/操作成功/出队操作 int DeleteQueue(SeqQueue*Q,DataType*x)/删除队列的队头元素,用 x 返回其值 if(Q-front=Q-rear)/队列为空 return(FALSE);*x=Q-dataQ-front;Q-front=(Q-front+1)%MAXSIZE;/重新设置队头指针 return(TRUE);/操作成功/清空元素 void ClearQueue_Sq(SeqQueue&Q)Q.front=Q.rear=0;/构造队列,数据元素由键盘输入 void CreateQueue_Sq(SeqQueue&Q)DataType temp;cout 输入数据元素(按-1 结束)temp;while(temp!=-1)if(Q.rear+1)%MAXSIZE=Q.front)couttemp;/队列的长度 int QueueLength_Sq(SeqQueue Q)return(Q.rear-Q.front+MAXSIZE)%MAXSIZE;/由头到尾依次输出队列的数据元素 void OutputQueue_Sq(SeqQueue Q)if(Q.front=Q.rear)cout 空队列,没有元素 endl;else cout 该循环队列各元素依次为:;for(int k=0;k=QueueLength_Sq(Q)-1;k+)coutQ.data(Q.front+k)%MAXSIZE;coutendl;void main()int flag=1,select;cout 循环队列的基本操作 endl;cout 1.请输入循环队列元素:endl;cout 2.判断队列是否为空或是否为满 endl;cout 3.当前队头元素出队并将其输出循环队列的各元素 endl;cout 4.将 x 入队并输出循环队列的各元素 endl;cout 5.当前循环队列的长度 endl;cout 6.清空队列 endl;cout 7.退出 endl;while(flag)coutselect;SeqQueue Q;int x,a,e;switch(select)case 1:InitQueue(&Q);CreateQueue_Sq(Q);OutputQueue_Sq(Q);break;cout 请选择:;case 2:IsEmpty_full(&Q);break;cout 请选择:;case 3:DeleteQueue(&Q,&a);OutputQueue_Sq(Q);break;cout 请选择:;case 4:coutx;EnterQueue(&Q,x);OutputQueue_Sq(Q);break;cout 请选择:;case 5:cout 当前循环队列的长度是:(Q.rear-Q.front+MAXSIZE)%MAXSIZEendl;break;cout 请选择:;case 6:ClearQueue_Sq(Q);cout 该循环队列已清空,;break;case 7:flag=0;break;

    注意事项

    本文(2023年6.队列的顺序存储结构循环队列.pdf)为本站会员(C****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开