用循环数组实现队列
来源:互联网 发布:知乎 北上广深 编辑:程序博客网 时间:2024/05/01 14:12
Queue.h
#ifndef _QUEUE_Htypedef struct Queue * PtrQueue;void MakeEmpty(PtrQueue Q);PtrQueue CreateQueue(int maxSize);bool IsEmpty(PtrQueue Q);bool IsFull(PtrQueue Q);void DeleteQueue(PtrQueue Q);void EnQueue(PtrQueue Q, int X);int DeQueue(PtrQueue Q);#endif //_QUEUE_Hstruct Queue{int capacityOfQueue;int sizeOfQueue;int frontOfQueue;int rearOfQueue;int * arrayOfQueue;};
Queue.cpp
#include "StdAfx.h"#include "Queue.h"PtrQueue CreateQueue(int maxSize){PtrQueue Q = NULL;Q = new Queue();if (Q == NULL)throw "Fail to new a queue!";Q->arrayOfQueue = new int[maxSize]();if (Q->arrayOfQueue == NULL)throw "Fail to new array of queue!";Q->capacityOfQueue = maxSize;MakeEmpty(Q);return Q;}void MakeEmpty(PtrQueue Q){Q->sizeOfQueue = 0;Q->frontOfQueue = 0;Q->rearOfQueue = 0;}bool IsEmpty(PtrQueue Q){if (Q->sizeOfQueue == 0)return true;elsereturn false;}bool IsFull(PtrQueue Q){if (Q->sizeOfQueue == Q->capacityOfQueue)return true;elsereturn false;}void DeleteQueue(PtrQueue Q){if (Q){delete[] Q->arrayOfQueue;Q->arrayOfQueue = NULL;delete Q;Q = NULL;}}void EnQueue(PtrQueue Q, int X){if (IsFull(Q))throw "Full queue!";else{Q->rearOfQueue = Q->rearOfQueue % Q->capacityOfQueue;Q->arrayOfQueue[Q->rearOfQueue++] = X;Q->sizeOfQueue++;}}int DeQueue(PtrQueue Q){if (IsEmpty(Q))throw "Empty queue!";else{Q->frontOfQueue = Q->frontOfQueue % Q->capacityOfQueue;Q->sizeOfQueue--;return Q->arrayOfQueue[Q->frontOfQueue++];}}
0 0
- 用循环数组实现队列
- 用数组实现循环队列
- 用循环数组实现队列
- 用循环数组实现队列
- 数组实现循环队列
- 数组实现循环队列
- 循环数组实现队列
- 循环队列--数组实现
- 数组实现循环队列
- 数组实现循环队列
- 数组实现循环队列
- 队列----循环数组实现队列
- java实现 用数组实现循环队列
- 用循环数组实现队列的方法
- 8.用定长数组 实现 循环队列
- Java用循环数组实现队列
- Java数组实现循环队列
- 静态数组实现循环队列
- 同意大家的同意交通的健康他的一脚踢人体塑化让他
- 禁用Visual Studio 2013的Browser Link功能
- 光电脉搏传感器的研制和噪声分析
- yii自带验证码,解决刷新页面验证码不刷新问题
- 奇偶排序问题之单向扫描
- 用循环数组实现队列
- tcpdump
- 基础笔记:排序算法(一)(选择、插入、冒泡)
- 缺氧的危害_健合制氧机
- win7下解决RalationRose无法关闭并报错的问题
- 渣渣要走了,咱们以后没有人一起玩耍了
- eclipse 添加 未实现的方法 Add unimplemented methods的快捷键
- 家用制氧机什么牌子好?
- RHEL5 X86-64上安装Oracle 11gR2示例与总结