队列的动态数组实现
来源:互联网 发布:js string转date函数 编辑:程序博客网 时间:2024/06/04 18:00
#include "Queue.h"#include <stdlib.h>/* Queue implementation is a dynamically allocated array *//* 用一个动态数组来实现队列 */struct QueueRecord{ int Capacity; int Front; int Rear; int Size; ElementType * Array;};int IsEmpty(Queue Q){ return Q->Size == 0;}void MakeEmpty( Queue Q ){ Q->Size = 0; Q->Front = 1; Q->Rear = 0;}Queue CreatQueue(int MaxElements){ Queue queue = malloc(sizeof(struct QueueRecord)); queue->Array = malloc(sizeof(ElementType)*MaxElements); if(queue == NULL || queue->Array == NULL) FatalError("Something Error"); queue->Capacity = MaxElements; MakeEmpty(queue);}static int Succ(int value,Queue Q){ if(++value == Q->Capacity) value = 0; return value;}void Enqueue(ElementType X,Queue Q){ if( IsFull( Q ) ) FatalError("Full queue"); else { Q->Size++; Q->Rear = Succ(Q->Rear,Q); Q->Array[ Q->Rear ] = X; }}int IsFull(Queue Q){ return Q->Size == Q->Capacity;}void Dequeue(Queue Q){ if(IsEmpty(Q)) FatalError("Empty queue"); else { Q->Size--; Q->Front = Succ(Q->Front,Q); }}ElementType FrontAndDequeue(Queue Q){ ElementType Tmp; if(IsEmpty(Q)) Error("Empty queue"); else { Q->Size--; Tmp = Q->Array[Q->Front]; Q->Front = Succ(Q->Front,Q); return Tmp; }}void DisposeQueue( Queue Q ){ free(Q->Array); free(Q);}void Error(char * error){ printf("%s",error);}void FatalError(char * fatalerror){ printf("%s",fatalerror); return 0;}int main(){ Queue q = CreatQueue(200); int i; for(i = 1; i <= 110; i++) Enqueue(i,q); for(i = 1;i <=100; i++) printf("%lf\n",FrontAndDequeue(q)); return 0;}
阅读全文
0 0
- 动态数组实现的队列
- 队列的动态数组实现
- 动态数组实现队列
- 基于动态数组的队列实现
- 数据结构队列之环形队列的动态数组实现:queue
- 动态数组实现循环队列
- 动态数组实现循环队列
- 基础知识--数组、栈、队列的静态、动态和链式实现
- Java数组实现可以动态增长的队列
- 队列的数组实现
- 队列的数组实现
- 队列的数组实现
- 队列的数组实现
- 队列的数组实现
- 队列的数组实现
- 数组实现的队列
- 队列的数组实现
- 队列的数组实现
- Android线程—生产者和消费者
- 深入 Java 调试体系
- STM32的NVIC和中断的总结
- RabbitMQ—队列
- 修改版Alexnet模型训练CIFAR10数据集程序的总结
- 队列的动态数组实现
- C++----函数&函数指针
- RESTful设计原则和样例(开发前后台接口)
- android6.0 切换到指定wifi
- babel学习笔记
- 深度学习综述
- 嵌入式Linux下PWM功能调试
- $.ajax()——超时设置,增加 loading 提升体验
- mysql 父类查询所有子类以及从子类查询父类