資料結構實驗課五-1
利用順序儲存結構實現一個迴圈佇列,完成結構體的定義,以及入隊函式,出隊函式和主程式的編寫。其中入隊函式將鍵盤輸入的整數存入佇列的末尾;出隊函式將佇列最前面的元素列印到螢幕;入隊和出隊的人數可以由鍵盤指定。
#include<iostream>
using namespace std;
const int QueueSize = 100;
template<typename DataType>
class CirQueue
{
public:
CirQueue();
~CirQueue();
void EnQueue();
DataType DeQueue();
DataType GetHead();
int Empty();
private:
DataType data[QueueSize];
int front, rear;
};
template<typename DataType>
CirQueue<DataType>::CirQueue()
{
rear = front = QueueSize -1;
}
template<typename DataType>
CirQueue<DataType>::~CirQueue(){}
template<typename DataType>
CirQueue<DataType>::Empty()
{
if(rear == front)
{
printf("Null");
}
}
template<typename DataType>
void CirQueue<DataType>::EnQueue()
{
int b;
cout<<"請輸入要入隊的數字:"<<endl;
cin>>b;
if ((rear + 1) % QueueSize == front)throw"上溢";
rear = (rear + 1) % QueueSize;
data[rear] = b;
}
template<typename DataType>
DataType CirQueue<DataType>::DeQueue()
{
if (rear == front)throw"下溢";
front = (front + 1) % QueueSize;
cout<<"出隊的元素是:"<<endl;
cout<<data[front]<<endl;
}
template<typename DataType>
DataType CirQueue<DataType>::GetHead()
{
if (rear == front)throw"下溢";
return data[(front + 1) % QueueSize];
}
int main()
{
int x;
int c = 0;
CirQueue<int> Q;
int a;
while(1){
cout<<"請選擇功能:"<<endl;
cout<<"1:入隊"<<endl;
cout<<"2:出隊"<<endl;
cout<<"0:退出"<<endl;
cin>>x;
switch (x)
{
case 0: return 0;break;
case 1:Q.EnQueue();c = c+1;break;
case 2:c = c-1;if(c == -1){cout<<"佇列為空!";return 0;}Q.DeQueue();break;
default:cout<<"輸入錯誤,重新輸入!"<<endl;
}
}
return 0;
}
相關文章
- 資料結構實驗1資料結構
- 資料結構實驗(4)資料結構
- 資料結構實驗之連結串列五:單連結串列的拆分資料結構
- 資料結構實驗三:線性表綜合實驗資料結構
- 資料結構實驗:連結串列的應用資料結構
- 資料結構實驗之連結串列八:Farey序列資料結構
- 資料結構(1):棧資料結構
- Redis 的五種資料結構Redis資料結構
- 資料結構實驗 多維陣列的實現資料結構陣列
- 資料結構實驗 二維矩陣的實現資料結構矩陣
- 實戰資料結構(1)_單連結串列的操作資料結構
- 資料結構,雜湊表hash設計實驗資料結構
- 《資料結構》實驗08--樹及其應用資料結構
- 迷宮問題【資料結構實驗報告】資料結構
- 例說資料結構&STL(五)——stack資料結構
- 《Java 高階篇》五:資料結構Java資料結構
- 《資料探勘導論》實驗課——實驗四、資料探勘之KNN,Naive BayesKNNAI
- caffe study - 資料結構(1)資料結構
- 慕課網玩轉資料結構課程之陣列資料結構陣列
- 《大話資料結構》讀後總結(五)資料結構
- 資料結構實驗之連結串列九:雙向連結串列資料結構
- 資料結構實驗之連結串列二:逆序建立連結串列資料結構
- 資料庫實驗五:資料庫程式設計資料庫程式設計
- 資料結構 第一節 第六課資料結構
- (C++)資料結構實驗二——迷宮問題C++資料結構
- 資料結構實驗5、鏈佇列的基本操作資料結構佇列
- 資料結構實驗之連結串列三:連結串列的逆置資料結構
- 資料結構實驗之連結串列六:有序連結串列的建立資料結構
- 資料結構實驗之連結串列一:順序建立連結串列資料結構
- Redis資料結構詳解之Zset(五)Redis資料結構
- 資料庫實驗五 資料庫的安全性資料庫
- 經驗總結1—資料核對
- 可持久化資料結構1持久化資料結構
- 實驗 結構體結構體
- 資料結構實驗之連結串列四:有序連結串列的歸併資料結構
- 信管117128許盛迪資料結構實驗一資料結構
- 資料結構實驗——二叉樹的常見操作資料結構二叉樹
- 南郵資料結構實驗1.1 順序表的操作資料結構