国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 靖远县| 高州市| 上林县| 大英县| 泗阳县| 佛冈县| 民权县| 昌平区| 广东省| 台中市| 峨山| 门源| 札达县| 当阳市| 无极县| 延川县| 崇阳县| 南投县| 肃北| 昌黎县| 台州市| 隆昌县| 巴南区| 朝阳县| 泊头市| 临高县| 乳山市| 胶南市| 南康市| 宁波市| 江津市| 南皮县| 长泰县| 曲周县| 托克逊县| 镇康县| 巴青县| 贡嘎县| 通城县| 淮北市| 府谷县|