博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++之环形队列的实现
阅读量:2029 次
发布时间:2019-04-28

本文共 2267 字,大约阅读时间需要 7 分钟。

MyQueue.h

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;//队尾};

MyQueue.cpp

#include "MyQueue.h"#include 
using namespace std;MyQueue::MyQueue(int queueCapacity)//创建队列{ m_iQueueCapacity = queueCapacity; m_iHead = 0; m_iTail = 0; m_iQueueLen=0; m_pQueue = new int[m_iQueueCapacity];}MyQueue::~MyQueue()//析构函数,销毁队列{ delete []m_pQueue; m_pQueue = NULL;}void MyQueue::ClearQueue()//清空队列{ m_iHead = 0; m_iTail = 0; m_iQueueLen = 0;}bool MyQueue::QueueEmpty() const//判空队列{ if(m_iQueueLen == 0) return true; else return false; // return m_iQueueLen == 0 ? true : false;}int MyQueue::QueueLength() const//队列长度{ return m_iQueueLen;}bool MyQueue::QueueFull() const//队列判满{ if(m_iQueueLen == m_iQueueCapacity) return true; else return false;}bool MyQueue::EnQueue(int element)//入队列{ if(QueueFull()) return false; else { m_pQueue[m_iTail] = element; m_iTail ++; m_iTail = m_iTail % m_iQueueCapacity; m_iQueueLen++; return true; }}bool MyQueue::DeQueue(int &element)//首元素出队{ if(QueueEmpty()) return false; else { element = m_pQueue[m_iHead]; m_iHead ++; m_iHead = m_iHead % m_iQueueCapacity; m_iQueueLen--; return true; }}void MyQueue::QueueTraverse()//遍历队列{ cout<

main.cpp(随便测试的数据)

#include 
#include
#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->EnQueue(20); p->QueueTraverse(); int e = 0; p->DeQueue(e); cout<
DeQueue(e); cout<
QueueTraverse(); p->ClearQueue(); p->QueueTraverse(); p->EnQueue(20); p->EnQueue(30); p->QueueTraverse(); delete p; p=NULL; system("pause"); return 0;}

转载地址:http://vjsaf.baihongyu.com/

你可能感兴趣的文章
Struts2与Struts1的对比
查看>>
Struts 使用要点(概述,Spring与Struts的整合,输入校验与消息显示)
查看>>
JSF与Struts的异同
查看>>
中国web2.0前途是什么
查看>>
Web2.0 编程思想:16条法则
查看>>
深入剖析JSP和Servlet对中文的处理
查看>>
五个理由来热爱Spring
查看>>
Spring的MVC模型运行序列分析
查看>>
Spring的注入方式详解
查看>>
Hibernate为什么如此成功?
查看>>
update和saveOrUpdate详解
查看>>
使用hibernate实现树形结构无限级分类
查看>>
IBatis.Net 表连接查询(五)
查看>>
Ibatis.Net 数据库操作(四)
查看>>
Oracle10g 创建一个DataBase实例
查看>>
WWF3XOML方式创建和启动工作流 <第十篇>
查看>>
逻辑数据库设计 - 单纯的树(递归关系数据)
查看>>
LoadRunner用户行为模拟器 《第三篇》
查看>>
TrimPath - Js模板引擎
查看>>
Windbg 内存命令 《第四篇》
查看>>