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