?? cirqueue.cpp
字號:
//CirQueue.cpp
#include "CirQueue.h"
/*
* 前置條件:隊列不存在
* 輸 入:無
* 功 能:初始化隊列
* 輸 出:無
* 后置條件:創建一個空隊列
*/
template <class T>
CirQueue<T>::CirQueue( )
{
front=rear=0;
}
/*
* 前置條件:隊列已存在
* 輸 入:無
* 功 能:銷毀隊列
* 輸 出:無
* 后置條件:釋放隊列所占用的存儲空間
*/
template <class T>
CirQueue<T>::~CirQueue( )
{
}
/*
* 前置條件:隊列已存在
* 輸 入:元素值x
* 功 能:在隊尾插入一個元素
* 輸 出:如果插入不成功,拋出異常
* 后置條件:如果插入成功,隊尾增加了一個元素
*/
template <class T>
void CirQueue<T>::EnQueue(T x)
{
if ((rear+1) % QueueSize ==front) throw "上溢";
rear=(rear+1) % QueueSize; //隊尾指針在循環意義下加1
data[rear]=x; //在隊尾處插入元素
}
/*
* 前置條件:隊列已存在
* 輸 入:無
* 功 能:刪除隊頭元素
* 輸 出:如果刪除成功,返回被刪元素值,否則,拋出刪除異常
* 后置條件:如果刪除成功,隊頭減少了一個元素
*/
template <class T>
T CirQueue<T>::DeQueue( )
{
if (rear==front) throw "下溢";
front=(front+1) % QueueSize; //隊頭指針在循環意義下加1
return data[front]; //讀取并返回出隊前的隊頭元素,注意隊頭指針
}
//指向隊頭元素的前一個位置
/*
* 前置條件:隊列已存在
* 輸 入:無
* 功 能:讀取隊頭元素
* 輸 出:若隊列不空,返回隊頭元素
* 后置條件:隊列不變
*/
template <class T>
T CirQueue<T>::GetQueue( )
{
int i;
if (rear==front) throw "下溢";
i=(front+1) % QueueSize; //注意不要給隊頭指針賦值
return data[i];
}
/*
* 前置條件:隊列已存在
* 輸 入:無
* 功 能:判斷隊列是否為空
* 輸 出:如果隊列為空,返回1,否則,返回0
* 后置條件:隊列不變
*/
template <class T>
bool CirQueue<T>::Empty( )
{
if (front==rear)
return 1;
else
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -