博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Circle Queue in C
阅读量:6006 次
发布时间:2019-06-20

本文共 1443 字,大约阅读时间需要 4 分钟。

hot3.png

#include "stdafx.h"#include
#include
struct CircleQueue{ int head; int tail; int length; int isFull; int *array;};CircleQueue* CreatCircleQueue(int length){ CircleQueue *q = (CircleQueue*)malloc(sizeof(struct CircleQueue)); q->length = length; q->tail = 0; q->head = 0; q->array = (int *)malloc(sizeof(int)*length); q->isFull = 0; return q;}int EnterQueue(CircleQueue* q,int x){ if(q->isFull == -1){ printf("\nError: The Circle Queue is full!\n"); return -1; }else{ q->head = q->head + 1; if(q->head > q->length - 1) q->head = 0; if(q->head == q->tail) q->isFull = -1; q->array[q->head] = x; } return 0;} int DelQueue(CircleQueue * q){ if(q->isFull == 0 && q->head == q->tail){ printf("Error: The Circle Queue is Empty!\n"); return -1; }else{ q->tail = q->tail + 1; if(q->tail > q->length-1) q->tail = 0; if(q->tail == q->head) q->isFull = 0; return 0; }}int ShowQueue(CircleQueue* q){ int i,j; int flag = 1; if(q->isFull == 0 && q->head == q->tail){ //printf("Queue is Empty!\n"); }else{ i = q->head; while(1){ printf(" %d ",q->array[i--]); if(i<0) i=9; if(i == q->tail) break; } printf("\n"); } return 0;} int main(){ CircleQueue *q = CreatCircleQueue(10); int i,j; for(j=1;j<=3;j++){ for(i=1;i<=5;i++){ EnterQueue(q,i*j); ShowQueue(q); } for(i=1;i<=5;i++){ DelQueue(q); ShowQueue(q); } } getchar(); return 0;}

在此输入图片描述

转载于:https://my.oschina.net/dongdong2012/blog/115464

你可能感兴趣的文章
配置 SSH Key ☞ GitHub
查看>>
组件化通用模式
查看>>
迭代器模式
查看>>
Vant - 高效的 Vue 组件库,再造一个有赞移动商城也不在话下
查看>>
常见Java面试整理
查看>>
浅谈HTTP长连接
查看>>
bom基础
查看>>
项目中Spring结合Freemaker渲染网页
查看>>
Spring AOP 常用术语说明
查看>>
修复zuul跨域配置异常
查看>>
献给容器爱好者们的一张藏宝图
查看>>
Python3使用csv模块csv.writer().writerow()保存csv文件,产生空行的问题
查看>>
用户访问web服务器过程精解
查看>>
那些设计iOS API需要知道的事
查看>>
Linux下PHP安装Redis扩展(二)
查看>>
挺在移动市场中央,App测试意义非凡
查看>>
数据缺失
查看>>
CSS五种方式实现Footer置底
查看>>
Swift 4.2正式发布
查看>>
又拍云创新CDN服务,同步提供1:1免费云存储
查看>>