定义队列类模板queue(先进先出),队列的大小由使用者确定。要求该类模板对外提供如下二种基本操作:(1)insert(入队列)(2)front(出队列),用数组来实现
#include < iostream >
using namespace std;
template < class T, int size >
class queue {
T x [ size ] ;
int current, front, rea

定义队列类模板queue(先进先出),队列的大小由使用者确定。要求该类模板对外提供如下二种基本操作:(1)insert(入队列)(2)front(出队列),用数组来实现
#include < iostream >
using namespace std;
template < class T, int size >
class queue {
T x [ size ] ;
int current, front, rear;
public :
queue ( ) { current = 0 ; front = 0 ; rear = 0 ;}
. . . .insert(. . . .);
. . . .front(. . . .);
};
请写出两个函数的过程(如果需要形式参数,请给出形参类型和数量,以及返回值类型)


【正确答案】:

VOID QUEUE<T,SIZE>::INSERT(T T){
IF(CURRENT==SIZE)
{COUT<<"QUEUE OVERFLOW!"<<ENDL;EXIT(0);}
ELSE{X[REAL]=T;(CURRENT++;(REAL++)%SIZE;}
}&NBSP;


T QUEUE<T,SIZE>::FRONT( ){
IF(CURRENT==0){
COUT<<"DELETING FROM AN EMPTY QUEUE!"<<ENDL;EXIT(0);}
ELSE{T A=X[FRONT];CURRENT--;(FRONT++)%SIZE;RETURN A;}
}


【题目解析】:

声明类模板的一般格式如下:


当需要编写多个形式和功能都相似的类时,可以使用类模板机制。根据题目要求定义insert(入队列)、front(出队列)。

入队列时,计数的值current++,且当入的队列数=队列的容量时,停止。

出队列时,计数的值current--,且当计数值=0时,不再出队列。


Top