数据结构之环形队列实现(1)
来源:互联网 发布:市濑秀和知乎 编辑:程序博客网 时间:2024/05/22 17:48
注意:判空,判队列满,
MyQueue.h
#ifndef MYQUEUE_H#define MYQUEUE_H/* 环形队列C++实现*/class MyQueue{public: MyQueue(int queueCapacity); //构造函数 virtual ~MyQueue(); void ClearQueue(); bool QueueEmpty() const; bool QueueFull() const; int QueueLength() const; bool EnQueue(int element); bool DeQueue(int &element); void QueueTraverse();private: int *m_pQueue; int m_iQueueLen; int m_iQueueCapacity; int m_iHead; int m_iTail;};#endif
MyQueue.cpp
#include "MyQueue.h"#include<iostream>using namespace std;MyQueue::MyQueue(int queueCapacity){ m_iQueueCapacity = queueCapacity; m_pQueue = new int[m_iQueueCapacity];//有可能申请失败 ClearQueue();}MyQueue::~MyQueue(){ delete[]m_pQueue; m_pQueue = nullptr;}void MyQueue::ClearQueue(){ m_iHead = 0; m_iTail = 0; m_iQueueLen = 0;}bool MyQueue::QueueEmpty() const{ return m_iQueueLen == 0 ? true : false;}int MyQueue::QueueLength() const{ return m_iQueueLen;}bool MyQueue::QueueFull() const{ if (m_iQueueLen == m_iQueueCapacity) return true; return false;}bool MyQueue::EnQueue(int element){ if (QueueFull()) return false; m_pQueue[m_iTail] = element; m_iTail++; m_iQueueLen++; m_iTail %= m_iQueueCapacity; return true;}bool MyQueue::DeQueue(int &element){ if (QueueEmpty()) return false; element = m_pQueue[m_iHead]; m_iHead++; m_iQueueLen--; m_iHead %= m_iQueueCapacity; return true;}void MyQueue::QueueTraverse(){ cout << endl; for (int i = m_iHead; i < m_iQueueLen + m_iHead; i++){ cout << m_pQueue[i%m_iQueueCapacity] << endl; } cout << endl;}
Test.cpp
#include<iostream>#include "MyQueue.h"using namespace std;int main(){ MyQueue *p = new MyQueue(4); p->EnQueue(10); p->EnQueue(12); p->EnQueue(16); p->EnQueue(18); p->QueueTraverse(); int e = 0; p->DeQueue(e); cout << endl; cout << e << endl; p->DeQueue(e); cout << endl; cout << e << endl; cout << endl; p->QueueTraverse(); p->ClearQueue(); p->QueueTraverse(); p->EnQueue(20); p->EnQueue(30); p->QueueTraverse(); delete p; p = NULL; return 0;}
0 0
- 数据结构之环形队列实现(1)
- 数据结构之环形队列应用(2)
- 数据结构队列之环形队列的动态数组实现:queue
- C++数据结构环形队列Deque实现
- 第七周数据结构之自建算法库——顺序环形队列【项目1 - 建立顺序环形队列算法库】
- c语言数据结构实现-数组队列/环形队列
- 数据结构-顺序环形队列
- 数据结构-环形队列
- 数据结构环形队列
- java之环形队列的实现
- C++之环形队列的实现
- 2015年大二上-数据结构-队列(1)- 顺序环形队列算法库
- 数据结构学习日记(3)——环形队列的代码实现
- 数据结构学习:环形队列的模板类实现
- 【数据结构】环形缓冲区/循环队列 C语言实现
- 第七周【项目1】数据结构之自建算法库——顺序环形队列
- 数据结构之自建算法库——顺序环形队列
- 第六周--数据结构 项目之顺序环形队列
- css表格中设置两行中间的空白间距
- 计网学习笔记day1
- 组合数
- JAVA采用DES算法进行加密解密文件
- MySQL常用指令(二)查询数据
- 数据结构之环形队列实现(1)
- 设计模式学习之适配器模式
- C++实现队列--数组实现和链表实现
- 1--百度2017春招笔试真题编程题集合--买帽子(Python)
- CodeForces 707C Pythagorean Triples(数学 构造)
- 问题: 使用putty登录显示network error:Connection refused使用putty登录显示network error:Connection refused 在局域网使
- 栈应用 一(括号匹配)
- 在eclipse中将android工程打包成apk
- 南阳oj 题目21 三个水杯