国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

數(shù)組實(shí)現(xiàn)隊(duì)列功能(C++練習(xí)記錄)

2019-11-06 08:40:23
字體:
供稿:網(wǎng)友

Q:通過 數(shù)組 實(shí)現(xiàn) 隊(duì)列(FIFO)功能

A:

MyQueue.h

#ifndef MYQUEUE_H#define MYQUEUE_H/*************************************//*環(huán)形隊(duì)列實(shí)現(xiàn) 2017.03.01 by hyc    *//************************************/class MyQueue{public:	MyQueue(int queueCapacity);  //創(chuàng)建隊(duì)列	virtual ~MyQueue();          //銷毀隊(duì)列	void ClearQueue();           //清空隊(duì)列	bool QueueEmpty() const;     //判空隊(duì)列	bool QueueFull() const;      //判滿隊(duì)列	int QueueLength() const;     //隊(duì)列長(zhǎng)度	bool EnQueue(int element);   //新元素入列	bool DeQueue(int &element);  //首元素出列	void QueueTraverse();        //遍歷隊(duì)列PRivate:	int *m_pQueue;               //隊(duì)列數(shù)組指針	int m_iQueueLen;             //隊(duì)列元素個(gè)數(shù)	int m_iQueueCapacity;        //隊(duì)列數(shù)組容量	int m_iHead;                 //隊(duì)首	int m_iTail;                 //隊(duì)尾};#endifMyQueue.cpp

#include "MyQueue.h"#include <iostream>using namespace std;/*************************************//*環(huán)形隊(duì)列實(shí)現(xiàn) 2017.03.01 by hyc    *//************************************/MyQueue::MyQueue(int queueCapacity){	m_iQueueCapacity = queueCapacity;	m_pQueue = new int[m_iQueueCapacity];	m_iHead = 0;	m_iTail = 0;	m_iQueueLen = 0;}MyQueue::~MyQueue(){	delete[] m_pQueue;	m_pQueue = NULL;}void MyQueue::ClearQueue(){	m_iHead = 0;	m_iTail = 0;	m_iQueueLen = 0;}bool MyQueue::QueueEmpty() const{	return m_iQueueLen == 0 ? true : false;}bool MyQueue::QueueFull() const{	return m_iQueueLen == m_iQueueCapacity ? true : false;}int MyQueue::QueueLength() const{	return m_iQueueLen;}bool MyQueue::EnQueue(int element){	if (QueueFull()){		return false;	}	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;	}	element = m_pQueue[m_iHead];	m_iHead++;	m_iHead = m_iHead % m_iQueueCapacity;	m_iQueueLen--;	return true;}void MyQueue::QueueTraverse(){	cout << endl;	for (int i = m_iHead; i < m_iHead + m_iQueueLen; i++){		cout << m_pQueue[i % m_iQueueCapacity] << endl;//我寫錯(cuò)了	}	cout << endl;}demo.cpp:用于測(cè)試隊(duì)列功能是否實(shí)現(xiàn)

#include "MyQueue.h"#include <iostream>using namespace std;/*************************************//*環(huán)形隊(duì)列實(shí)現(xiàn) 2017.03.01 by hyc    *//************************************/int main(void){	MyQueue *p = new MyQueue(4);	p->EnQueue(1);	p->EnQueue(2);	p->EnQueue(3);	p->EnQueue(4);	p->EnQueue(5);	p->QueueTraverse();	int e = 0;	p->DeQueue(e);	p->QueueTraverse();	cout << e << endl;	p->DeQueue(e);	p->QueueTraverse();	cout << e << endl;	p->ClearQueue();	p->QueueTraverse();	p->EnQueue(10);	p->EnQueue(20);	p->QueueTraverse();	int j = 0;	j=p->QueueLength();	cout << j << endl;	delete p;	p = NULL;	system("pause");		return 0;}輸出結(jié)果:

注意:本次練習(xí)只實(shí)現(xiàn)了簡(jiǎn)單的int類型的隊(duì)列功能,可以使用模板類進(jìn)一步實(shí)現(xiàn)其多類型支持。并且本程序有很多不完善的地方,如分配空間等的異常檢測(cè)。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 宣汉县| 厦门市| 兰坪| 兴仁县| 芮城县| 石首市| 常州市| 邵武市| 枣阳市| 千阳县| 盐城市| 红河县| 屏东市| 仪征市| 韶关市| 钦州市| 绥芬河市| 新源县| 天全县| 葫芦岛市| 呼和浩特市| 平利县| 广州市| 郁南县| 泸定县| 彰武县| 海伦市| 宽甸| 漳州市| 凤冈县| 乌兰浩特市| 资溪县| 周至县| 贵溪市| 涟源市| 南京市| 海淀区| 合川市| 满洲里市| 乃东县| 鞍山市|