標籤:

02-環形隊列1

02-環形隊列1

來自專欄數據結構題目

//實現環形隊列main.cpp#include<iostream>#include<stdlib.h>#include"MyQueue.h"using namespace std;int main(){ Myqueue *p=new MyQueue(4); p->EnQueue(10); p->EnQueue(12); p->Enqueue(14); p->Enqueue(16); p->Enqueue(18); p->QueueTraverse(); cout<<endl; int e; p->DeQueue(e); cout<<e<<endl; p->QueueTraverse(); p->ClearQueue(); p->QueueTraverse(); p->EnQueue(20); p->Enqueue(30); p->QueueTraverse(); delete p; p=NULL; system("pause"); return 0;}MyQueue.h#ifndef MYQUEUE_H#define MYQUEUE_Hclass 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>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; }}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(){ for(int i=m_iHead;i<m_iHead+m_iQueueLen;i++) { std::cout<<m_pQueue[i%m_iQueueCapacity]<<std::endl; }}

推薦閱讀:

Zeta函數——故事的小黃花
宇宙是什麼構成的?科學家說是數學-今日頭條
蒙氏數學

TAG:數學 |