c语言简单实现队列
来源:互联网 发布:asp.net 4高级编程pdf 编辑:程序博客网 时间:2024/05/16 14:09
#ifndef _QUEUE_H_#define _QUEUE_H_#if 1typedef struct queue{int *buff;int putIndex;int getIndex;int count;int maxSize;}Queue,*pQueue;#else#include "doulist.h"typedef struct queue{Pnode head;int maxSize;int count;}Queue;#endifQueue *createQueue(int maxSize);int destroyQueue(Queue *pQueue);int enQueue(Queue *pQueue, int data);int deQueue(Queue *pQueue, int *pdata);int count(Queue *pQueue);int maxSize(Queue *pQueue);int isEmpty(Queue *pQueue);int isFull(Queue *pQueue);#endif
---------------------------------------------头文件-------------------------------------------------------------
#include <stdio.h>#include <stdlib.h>#include "queue.h"Queue *createQueue(int maxSize){pQueue p = (pQueue)malloc(sizeof(Queue));if (NULL == p){return NULL;}p->buff = (int *)malloc(sizeof(int)*maxSize);if (NULL == p->buff){free(p);return NULL;}p->putIndex = 0;p->getIndex = 0;p->count = 0;p->maxSize = maxSize;}int destroyQueue(Queue *pQueue){if (NULL == pQueue){return -1;}if (NULL == pQueue->buff){return -2;}free(pQueue->buff);free(pQueue);return 0;}int enQueue(Queue *pQueue, int data){if (NULL == pQueue){return -1;}if (NULL == pQueue->buff){return -2;}if (isFull(pQueue)){return -3;}if (pQueue->putIndex == pQueue->maxSize){pQueue->putIndex = 0;}pQueue->buff[pQueue->putIndex] = data;pQueue->putIndex++;pQueue->count++;}int deQueue(Queue *pQueue, int *pdata){if (NULL == pQueue){return -1;}if (NULL == pQueue->buff){return -2;}if (isEmpty(pQueue)){*pdata = 0;return -3;}if (pQueue->getIndex == pQueue->maxSize){pQueue->getIndex = 0;}*pdata = pQueue->buff[pQueue->getIndex];pQueue->getIndex++;pQueue->count--;}int count(Queue *pQueue){if (NULL == pQueue){return -1;}return pQueue->count;}int maxSize(Queue *pQueue){if (NULL == pQueue){return -1;}return pQueue->maxSize;}int isEmpty(Queue *pQueue){if (NULL == pQueue){return -1;}if (0==pQueue->count){return 1;}return 0;}int isFull(Queue *pQueue){if (NULL == pQueue){return -1;}if (pQueue->count == pQueue->maxSize){return 1;}return 0;}int main(){pQueue p = createQueue(10);int data = 0;enQueue(p, 1);enQueue(p, 2);enQueue(p, 3);enQueue(p, 4);enQueue(p, 5);enQueue(p, 6);enQueue(p, 7);enQueue(p, 8);enQueue(p, 9);enQueue(p, 10);printf("count=%d getindex=%d, putindex=%d ", p->count, p->getIndex, p->putIndex);deQueue(p, &data);printf("data=%d,count=%d getindex=%d, putindex=%d\n", data, p->count, p->getIndex, p->putIndex);printf("count=%d getindex=%d, putindex=%d ", p->count, p->getIndex, p->putIndex);deQueue(p, &data);printf("data=%d,count=%d getindex=%d, putindex=%d\n", data, p->count, p->getIndex, p->putIndex);enQueue(p, 12);enQueue(p, 17);for (int i = 0; i < 15; i++){printf("count=%d getindex=%d, putindex=%d ", p->count, p->getIndex, p->putIndex);deQueue(p, &data);printf("data=%d,count=%d getindex=%d, putindex=%d\n", data, p->count,p->getIndex,p->putIndex);}getchar();}
0 0
- c语言简单实现队列
- C语言-循环队列的简单实现
- C语言队列QUEUE简单实现
- C语言指针实现简单队列
- 队列的简单实现--C语言
- [数据结构]队列的C语言简单实现
- 队列 C语言实现
- 队列C语言实现
- C语言实现队列
- 队列 c语言实现
- C语言实现队列
- C语言实现队列
- C 语言实现队列
- c语言实现队列
- C语言实现队列
- C语言队列实现
- C语言实现队列
- 用C语言实现简单链式队列结构
- CSS学习、Day02
- rails 手动创建controller和model 用和model名不同的数据表 会产生的问题
- BLUP
- centos 7 密码忘记 如何进入修改
- 为什么匿名内部类和局部内部类只能访问final变量 - 2
- c语言简单实现队列
- Gson 和 json 详解
- c/c++--10个经典的C语言面试基础算法及代码
- 关于jquery checkBox的用法 和获取选中的值和文本
- android uiautomator自定义监听示例--一个弹出权限设置的监听
- 如何在C/S下打印报表
- 16进制练习
- 【Linux基础】安装python-opencv并调用摄像头数据
- Mongodb 多集合 多表 统计实战