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

    2022年数据结构C语言版循环队列 3.pdf

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

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

    2022年数据结构C语言版循环队列 3.pdf

    /* 数据结构 C 语言版循环队列P64 编译环境: Dev-C+ 4.9.9.2 日期:2011 年 2 月 12 日*/ #include #include typedef int QElemType; / 队列的顺序存储结构(可用于循环队列和非循环队列) #define MAXQSIZE 5 / 最大队列长度(对于循环队列,最大队列长度要减1) typedef struct QElemType *base; / 初始化的动态分配存储空间,相当于一个数组头/ 头指针 ,若队列不空 ,指向队列头元素,相当于一个下标int front; / 尾指针 ,若队列不空 ,指向队列尾元素的下一个位置,相当于一个下标int rear; SqQueue;/ 空队列的标志是队头队尾指针都相同/ 构造一个空队列Q int InitQueue(SqQueue *Q) /给队头队尾指针分配空间,并置空(*Q).base=(QElemType *)malloc(MAXQSIZE*sizeof(QElemType); /这里的 Q.base相当于一个数组头if(!(*Q).base) / 存储分配失败exit(0); (*Q).front=(*Q).rear=0; /下标初始化为0 return 1; / 销毁队列Q,Q 不再存在int DestroyQueue(SqQueue *Q) if(*Q).base) free(*Q).base); (*Q).base=NULL; (*Q).front=(*Q).rear=0; /空队列的标志是队头队尾指针都相同,且为0 return 1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 5 页 - - - - - - - - - / 将 Q 清为空队列int ClearQueue(SqQueue *Q) (*Q).front=(*Q).rear=0; /空队列的标志是队头队尾指针都相同,且为0 return 1; / 若队列 Q 为空队列 ,则返回 1,否则返回0 int QueueEmpty(SqQueue Q) if(Q.front=Q.rear) / 队列空的标志return 1; else return 0; / 返回 Q 的元素个数 ,即队列的长度int QueueLength(SqQueue Q) return(Q.rear-Q.front+MAXQSIZE)%MAXQSIZE; / 若队列不空 ,则用 e 返回 Q 的队头元素 ,并返回 1,否则返回0 int GetHead(SqQueue Q,QElemType *e) if(Q.front=Q.rear) / 队列空return 0; / *(Q.base+Q.front) 相当于 Q.baseQ.front, 即 Q.base是数/ 组头,表示第Q.front 个元素*e=*(Q.base+Q.front); return 1; / 插入元素e 为 Q 的新的队尾元素int EnQueue(SqQueue *Q,QElemType e) if(*Q).rear+1)%MAXQSIZE=(*Q).front) / 队列满return 0; (*Q).base(*Q).rear=e; (*Q).rear=(*Q).rear+1)%MAXQSIZE; return 1; / 若队列不空 ,则删除 Q 的队头元素 ,用 e 返回其值 ,并返回 1;否则返回0 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 5 页 - - - - - - - - - int DeQueue(SqQueue *Q,QElemType *e) if(*Q).front=(*Q).rear) / 队列空return 0; *e=(*Q).base(*Q).front; (*Q).front=(*Q).front+1)%MAXQSIZE; return 1; / 从队头到队尾依次对队列Q 中每个元素调用函数vi() int QueueTraverse(SqQueue Q,void(*vi)(QElemType) int i; i=Q.front; while(i != Q.rear) vi(*(Q.base+i); i=(i+1) % MAXQSIZE; printf(n); return 1; void visit(QElemType i) printf(%d ,i); int main() int j; int i=0,l; QElemType d; SqQueue Q; InitQueue(&Q); printf( 初始化队列后,队列空否?%u(1:空 0:否)n,QueueEmpty(Q); printf( 请输入整型队列元素(不超过 %d 个),-1 为提前结束符: ,MAXQSIZE-1); do scanf(%d,&d); if(d=-1) break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 5 页 - - - - - - - - - i+; EnQueue(&Q,d); while(iMAXQSIZE-1); printf( 队列长度为 : %dn,QueueLength(Q); printf( 现在队列空否?%u(1:空 0:否)n,QueueEmpty(Q); printf( 连续 %d 次由队头删除元素,队尾插入元素 :n,MAXQSIZE); for(l=1;l0) printf( 现在由队头删除%d 个元素 :n,l-2); while(QueueLength(Q)2) DeQueue(&Q,&d); printf( 删除的元素值为%dn,d); j=GetHead(Q,&d); if(j) printf( 现在队头元素为: %dn,d); ClearQueue(&Q); printf( 清空队列后 , 队列空否? %u(1:空 0:否)n,QueueEmpty(Q); DestroyQueue(&Q); system(pause); return 0; /* 输出效果:初始化队列后,队列空否?1(1:空 0:否) 请输入整型队列元素(不超过 4 个),-1 为提前结束符 : 1 2 3 -1 队列长度为 : 3 现在队列空否?0(1:空 0:否) 连续 5 次由队头删除元素,队尾插入元素 : 删除的元素是1,请输入待插入的元素: 4 删除的元素是2,请输入待插入的元素: 5 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 5 页 - - - - - - - - - 删除的元素是3,请输入待插入的元素: 6 删除的元素是4,请输入待插入的元素: 7 删除的元素是5,请输入待插入的元素: 8 现在队列中的元素为: 6 7 8 共向队尾插入了8 个元素现在由队头删除1 个元素 : 删除的元素值为6 现在队头元素为: 7 清空队列后 , 队列空否? 1(1:空 0:否) 请按任意键继续. . . */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 5 页 - - - - - - - - -

    注意事项

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

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




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

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

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

    收起
    展开