队列的实现
来源:互联网 发布:数据挖掘工具weka教程 编辑:程序博客网 时间:2024/05/21 06:50
#include <stdio.h>#include <stdlib.h>#include <time.h>#include <malloc.h>#include <ctype.h>#define element int#define max__queue 10typedef struct queue{ element *array; int capacity;//队列预分配大小 int front;//队头--删除 int rear;//队尾----插入 int size;//当前队列大小} queue, *queue_point;int isempty(const queue_point s)//判断队列是否空闲{ return s->size == 0;}int isfull(const queue_point s)//判断队列是否满{ return s->capacity <= s->size;}void makeempty(queue_point s)//使队列为空{ s->size = 0; s->capacity = 0; s->front = -1; s->rear = -1;}void circle_queue(queue_point s)//队列循环{ s->front = -1;}queue_point create_queue(const int max_queue)//创建一个队列 并返回{ queue_point a = calloc(1, sizeof(queue)); if (a == NULL) { printf("calloc error"); } a->array = (element*)calloc(max_queue, sizeof(element)); if (a->array == NULL) { printf("calloc error"); } makeempty(a); a->capacity = max_queue; return a;}void enqueue(element data, queue_point s)//尾部 进队{ if (isfull(s)) { printf("queue is full"); } else if (s == NULL) { s = create_queue(max__queue); } if (s->rear + 1 == s->capacity) { s->rear == -1; } s->rear++; s->size += 1; s->array[s->rear] = data;}element dequeue(queue_point s)//头部 出队{ if (s->front + 1 == s->capacity) { s->rear == -1; } s->front++; s->size -= 1; return s->array[s->front];}void display_queue(const queue_point s)//输出队列的数据{ int b = s->size; while (b) { printf("%d ", s->array[s->rear - s->size + b]); b--; }}
#include "20150524.c"int main(){ queue_point duilie = create_queue(10); srand(time(NULL)); enqueue(rand() % 100 + 1, duilie); enqueue(rand() % 100 + 1, duilie); enqueue(rand() % 100 + 1, duilie); enqueue(rand() % 100 + 1, duilie); enqueue(rand() % 100 + 1, duilie); //printf("%d\n", duilie->rear); display_queue(duilie); dequeue(duilie); display_queue(duilie); return 0;}
0 0
- 队列的实现:顺序队列
- 队列的实现:链式队列
- 队列----循环队列的实现
- 队列实现 队列的链式结构实现
- 堆栈,队列的实现
- 链队列的实现
- 队列的实现
- 队列的实现
- java 实现的队列
- 工作队列的实现
- 工作队列的实现
- 用链表实现的队列
- 队列的实现
- 队列的实现
- 队列的实现
- 队列的数组实现
- 循环队列的实现
- 数据结构 队列的实现
- 将tomcat添加到服务中
- 钱币兑换问题
- CBLAS的安装与使用
- Spring4.x整合Quartz2.x动态修改定时器时间(修正多定时器SpringBean异常)
- scala学习之:List的map、flatMap、foreach、filter的操作代码实战
- 队列的实现
- C语言基础学习——第1天(类型+操作符)
- webbrowser加载地图网页出现脚本错误解决
- uva 12545Bits Equalizer
- Solarized配色方案
- 初学Java多线程:从线程返回数据的两种方法
- Servletcontext 相关监听器实例
- Leetcode问题-1(Two Sum)
- eclipse:java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) wit