赞
踩
一、队列的定义
- class CirQueue
- {
- public:
-
- CirQueue(int len)
- {
- this->m_Array = new int[len] {};
- this->m_Front_idx = 0;
- this->m_Rear_idx = 0;
- this->m_Len = len;
- }
-
- void Push(int data);
- void Delete();
- void Print();
-
- ~CirQueue()
- {
- if (this->m_Array != nullptr)
- {
- delete[] this->m_Array;
- this->m_Array = nullptr;
- }
- }
-
- private:
-
- int* m_Array;
- int m_Front_idx;
- int m_Rear_idx;
- int m_Len;
- };

二、插入
- void CirQueue::Push(int data)
- {
- if ((this->m_Rear_idx + 1) % this->m_Len == this->m_Front_idx)
- {
- cout << "队列已满,插入失败" << endl;
- return;
- }
- this->m_Array[this->m_Rear_idx] = data;
- this->m_Rear_idx = (this->m_Rear_idx + 1) % this->m_Len;
- }
三、删除
- void CirQueue::Delete()
- {
- if (this->m_Front_idx == this->m_Rear_idx)
- {
- cout << "队列为空,删除失败" << endl;
- return;
- }
- this->m_Array[this->m_Front_idx] = 0;
- this->m_Front_idx = (this->m_Front_idx + 1) % this->m_Len;
- }
四、整体展示
- #include <iostream>
-
- using namespace std;
-
- class CirQueue
- {
- public:
-
- CirQueue(int len)
- {
- this->m_Array = new int[len] {};
- this->m_Front_idx = 0;
- this->m_Rear_idx = 0;
- this->m_Len = len;
- }
-
- void Push(int data);
- void Delete();
- void Print();
-
- ~CirQueue()
- {
- if (this->m_Array != nullptr)
- {
- delete[] this->m_Array;
- this->m_Array = nullptr;
- }
- }
-
- private:
-
- int* m_Array;
- int m_Front_idx;
- int m_Rear_idx;
- int m_Len;
- };
-
- void CirQueue::Push(int data)
- {
- if ((this->m_Rear_idx + 1) % this->m_Len == this->m_Front_idx)
- {
- cout << "队列已满,插入失败" << endl;
- return;
- }
- this->m_Array[this->m_Rear_idx] = data;
- this->m_Rear_idx = (this->m_Rear_idx + 1) % this->m_Len;
- }
-
- void CirQueue::Delete()
- {
- if (this->m_Front_idx == this->m_Rear_idx)
- {
- cout << "队列为空,删除失败" << endl;
- return;
- }
- this->m_Array[this->m_Front_idx] = 0;
- this->m_Front_idx = (this->m_Front_idx + 1) % this->m_Len;
- }
-
- void CirQueue::Print()
- {
- for (int i = 0; i < this->m_Len - 1; ++i)
- {
- cout << this->m_Array[i] << " ";
- }
- cout << endl;
- }
-
- void Text()
- {
- CirQueue CQ(5);
- CQ.Push(5);
- CQ.Push(2);
- CQ.Push(3);
- CQ.Push(4);
- CQ.Print();
- CQ.Delete();
- CQ.Print();
- }
-
- int main()
- {
- Text();
-
- system("pause");
- return 0;
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。