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

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

queue.h

#ifndef QUEUE_#define QUEUE_#define SIZE 10typedef int data_t;typedef struct head{        data_t data[SIZE];        int front;        int rear;}queue_t;queue_t *queue_creat();int queue_is_empty(queue_t *head);int queue_is_full(queue_t *head);void queue_clear(queue_t *head);int queue_en(queue_t *head,data_t data);data_t queue_de(queue_t *head);void queue_show(queue_t *head);void queue_detory(queue_t **head);#endif

queue.c

#include 
#include
#include
#include
#include "queue.h"queue_t *queue_creat(){ queue_t *head = (queue_t *)malloc(sizeof(queue_t)); bzero(head,sizeof(queue_t)); head->front = 0; head->rear = 0; return head;}int queue_is_empty(queue_t *head){ return head->front == head->rear;}int queue_is_full(queue_t *head){ return head->rear - head->front == SIZE;}void queue_clear(queue_t *head){ head->rear = head->front;}int queue_en(queue_t *head,data_t data){ if(queue_is_full(head)) { printf("queue is fulll\n"); return -1; } head->data[head->rear%SIZE] = data; head->rear++; return 0;}data_t queue_de(queue_t *head){ if(queue_is_empty(head)) { printf("queue is empty\n"); return -1; } data_t data = head->data[head->front%SIZE]; head->front++; return data;}void queue_show(queue_t *head){ int i; for(i=head->front;i
rear;i++) { printf("%d\t",head->data[i%SIZE]); } printf("\n");}void queue_destory(queue_t **head){ free(*head); *head = NULL; }

main.c

#include 
#include "queue.h"int main(){ queue_t *head = queue_creat(); int n=10; while(n--) { queue_en(head,n+1); } queue_show(head); queue_destory(&head); return 0;}

 

转载于:https://www.cnblogs.com/Malphite/p/7571990.html

你可能感兴趣的文章
关于web服务器和数据库的各种说法(搜集到的)
查看>>
《TCP/IP 详解 卷一》读书笔记 -----第四章 ARP
查看>>
C# Stream 和 byte[] 之间的转换
查看>>
OMG: daily scrum nine
查看>>
redis与spring结合错误情况
查看>>
第六章 字节码执行方式--解释执行和JIT
查看>>
字符串方法title()、istitle()
查看>>
yield语句
查看>>
查看linux系统中占用cpu最高的语句
查看>>
[洛谷P1738]洛谷的文件夹
查看>>
ubuntu server设置时区和更新时间
查看>>
【京东咚咚架构演进】-- 好文收藏
查看>>
【HTML】网页中如何让DIV在网页滚动到特定位置时出现
查看>>
文件序列化
查看>>
jQuery之end()和pushStack()
查看>>
Bootstrap--响应式导航条布局
查看>>
Learning Python 009 dict(字典)和 set
查看>>
JavaScript中随着鼠标拖拽而移动的块
查看>>
HDU 1021 一道水题
查看>>
The operation couldn’t be completed. (LaunchServicesError error 0.)
查看>>