博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
47 _ 循环队列程序演示.swf
阅读量:5973 次
发布时间:2019-06-19

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

通过上面的分析我们已经对循环队列很了解了,现在我们来学习下循环队列的实现形式

1、代码使用数组现实循环队列

#include
#include
#include
#include
typedef struct Queue{ int * data;//存储的数据,指向一个数组 int font ;//队列数据删除 int rear;//队列数据的添加 }QUEUE ,*PQUEUE;/*初始化队列 6表示数组的长度*/void initQueue( PQUEUE pQueue){ /* 队列有三个元素构成: 1、一个数组 2、font标志 3、rear标志 */ //首先让队列 执行一个地址 pQueue->data = (int*)malloc(sizeof(int)*6);//该数组存储6个int类型的数据 pQueue->font = 0; pQueue->rear = 0; }/*判断队列是否已经存储满了 */bool full_quequ( PQUEUE pQueue){ if((pQueue->rear+1)%6 == pQueue->font){ return true; }else{ return false; }}/*对队列进行遍历*/void traverse_queue(PQUEUE pQueue){ int index = pQueue->font; while(index != pQueue->rear){ printf("%d\n",pQueue->data[index]); index = (index+1)%6; }} /*向队列中存储数据*/bool en_queue(PQUEUE pQueue ,int val){ if(full_quequ(pQueue)){ return false; }else{ //将输出放入数组对应的当前rear的位置 pQueue->data[pQueue->rear] = val; //rear向上移动 pQueue->rear = (pQueue->rear+1)%6;//数组的长度是6 return true; } }/*判断队列是否为空*/bool isEmptyQueue(PQUEUE pQueue){ if(pQueue->font == pQueue->rear ){ return true; }else{ return false; } }/*删除队列中的元素,将删除的元素保存到pVal的值中*/bool delete_quequ(PQUEUE pQueue ,int *pVal){ if(isEmptyQueue(pQueue)){ return false; }else{ //删除元素 *pVal = pQueue->data[pQueue->font]; //font指针上移动 pQueue->font = (pQueue->font +1) % 6; return true; }} int main(){ QUEUE s ; initQueue(&s); //数组的长度是6,一个空间存储rear,有效的空间只有5个,只能存储5个有效的数据 en_queue(&s,1); en_queue(&s,2); en_queue(&s,3); en_queue(&s,1); en_queue(&s,2); traverse_queue(&s); return 0;}

 

转载于:https://www.cnblogs.com/kebibuluan/p/6947218.html

你可能感兴趣的文章
cocos2dx 3.x(for 循环让精灵从中间往上下两边排列)
查看>>
cocos2dx JS 层(Layer)的生命周期
查看>>
【高并发解决方案】3、消息队列软件产品大比拼
查看>>
Golang 笔记 3 if、switch、for、select语句
查看>>
Android简单介绍
查看>>
android的窗口机制分析------UI管理系统
查看>>
配置activeMQ
查看>>
(六)Unity5.0新特性------新动画功能
查看>>
An internal error occurred during: "Building workspace". java.lang.StackOverflowError
查看>>
AWR系列之中的一个——AWR简单介绍
查看>>
关于NaN(Not a Number)的问题
查看>>
乌班图14.04安装搜狗输入法
查看>>
STL_算法_局部排序(partial_sort、partial_sort_copy)
查看>>
C语言代码复习笔记:第二章
查看>>
form的智能表单
查看>>
人工智能和机器学习领域开源项目
查看>>
OSX:不同OSX版本号的标记可能不兼容
查看>>
《海上钢琴师》影评
查看>>
C++进程的一千种死法
查看>>
【postman】利用谷歌浏览器插件生成代码
查看>>