博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C语言--循环队列实现
阅读量:5253 次
发布时间:2019-06-14

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

#include 
#include
#include
/* 循环队列*/typedef struct Queue{ int *p_base; int front; int rear;} QUEUE,*PQUEUE;void init_queue(QUEUE *);//队列初始化bool en_queue(QUEUE *, int); //加入队列void traverse_queue(QUEUE *);bool is_full(QUEUE *);bool is_empty(QUEUE *);bool out_queue(QUEUE *, int *);int main(){ QUEUE queue; int value; init_queue(&queue); en_queue(&queue, 1); en_queue(&queue, 1); en_queue(&queue, 1); en_queue(&queue, 1); en_queue(&queue, 1); traverse_queue(&queue); printf("\n"); out_queue(&queue, &value); printf("%d\n", value); traverse_queue(&queue); return 0;}void init_queue(QUEUE *p_queue){ p_queue->p_base = (int *)malloc(sizeof(int) * 6); p_queue->front = 0; p_queue->rear = 0; return;}bool en_queue(QUEUE * p_queue, int value){ if (is_full(p_queue)) { return false; } else { p_queue->p_base[p_queue->rear] = value; p_queue->rear = (p_queue->rear + 1) % 6; return true; }}bool is_full(QUEUE *p_queue){ if ((p_queue->rear + 1) % 6 == p_queue->front) { return true; } else { return false; }}void traverse_queue(QUEUE *p_queue){ int i = p_queue->front; while (i != p_queue->rear) { printf("%d ", p_queue->p_base[i]); i = (i + 1) % 6; } return;}bool is_empty(QUEUE *p_queue){ if (p_queue->front == p_queue->rear) { return true; } else { return false; }}bool out_queue(QUEUE *p_queue, int *p_value){ if (is_empty(p_queue)) { return false; } else { *p_value = p_queue->p_base[p_queue->front]; p_queue->front = (p_queue->front + 1) % 6; return false; }}

转载于:https://www.cnblogs.com/ykyk1229/p/9808794.html

你可能感兴趣的文章
数据清洗
查看>>
【读书笔记】C#高级编程 第三章 对象和类型
查看>>
针对sl的ICSharpCode.SharpZipLib,只保留zip,gzip的流压缩、解压缩功能
查看>>
【转】代码中特殊的注释技术——TODO、FIXME和XXX的用处
查看>>
【SVM】libsvm-python
查看>>
C++循环单链表删除连续相邻重复值
查看>>
Jmeter接口压力测试,Java.net.BindException: Address already in use: connect
查看>>
ASP.NET使网页弹出窗口不再困难
查看>>
Leetcode Balanced Binary Tree
查看>>
Leetcode 92. Reverse Linked List II
查看>>
windown快速安装xgboost
查看>>
Linux上安装Libssh2
查看>>
九.python面向对象(双下方法内置方法)
查看>>
go:channel(未完)
查看>>
[JS]递归对象或数组
查看>>
LeetCode(17) - Letter Combinations of a Phone Number
查看>>
Linux查找命令对比(find、locate、whereis、which、type、grep)
查看>>
路由器外接硬盘做nas可行吗?
查看>>
python:从迭代器,到生成器,再到协程的示例代码
查看>>
Java多线程系列——原子类的实现(CAS算法)
查看>>