-
隊列? :普通隊列? ?浪費資源不方便
????????????環形隊列????充分利用每個內存空間
查看全部 -
#include?"Customer.h" class?MyQueue{ public: ????... ????bool?EnQueue(Customer?element); ????bool?DeQueue(Customer?&element); ????... private: ????Customer?*m_pQueue; ????... }; //在MyQueue.cpp中 void?MyQueue::QueueTraverse(){ ????for(int?i=m_iHead;i<m_iQueueLen?+?m_iHead;i++){ ????????m_pQueue[i%m_iQueueCapacity].printInfo(); ????????//printInfo是Customer中的成員函數,打印出Customer的數據成員 ????} } //使用 MyQueue?*p=new?MyQueue[4]; Customer?c1("zhangsan",20); p->EnQueue(c1);
查看全部 -
//MyQueue.cpp #include?"MyQueue.h" #include?<iostream> using?namespace?std; MyQueue::MyQueue(int?queueCapacity){ ????m_iQueueCapacity=queueCapacity; ????ClearQueue();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::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::QueueFull()?const{ ????if(m_iQueueLen?==?m_iQueueCapacity){ ????????return?true; ????} ????else{ ????????return?false; ????} } //元素出隊 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<<endl; ????for(int?i=m_iHead;i<m_iQueueLen+m_iHead;i++){ ????????cout<<m_pQueue[i%m_iQueueCapacity]<<endl; ????} }
查看全部 -
class?MyQueue{ public: ????MyQueue(int?queueCapacity);???//創建隊列 ????virtual?~MyQueue();????//銷毀隊列 ????void?ClearQueue();???//清空隊列 ????bool?QueueEmpty()?const;???//判空隊列 ????int?QueueLength()?const;???//隊列長度 ????bool?EnQueue(int?element);???//新元素入隊 ????bool?DeQueue(int?&element);???//首元素出隊 ????void?QueueTraverse();????//遍歷隊列 private: ????int?*m_pQueue;?????//隊列數組指針 ????int?m_iQueueLen;?????//隊列元素個數 ????int?m_iQueueCapacity;???//隊列數組容量 };
查看全部 -
【隊列】先入先出First in First out(FIFO)
1、普通隊列
2、環形隊列:順時針和逆時針的排隊
查看全部 -
.查看全部
-
.查看全部
-
.查看全部
-
.查看全部
-
.查看全部
-
.查看全部
-
.查看全部
-
.查看全部
-
.查看全部
-
.查看全部
舉報
0/150
提交
取消