(1)完成类queue的无参数的构造函数的定义,要求把数据成员bl和el都初始化为0,同时输出queueinitialized。请在注释“//**1**”之后添加适当的语句。
(2)完成类queue的成员函数qput(intj)的定义,它的功能是把新的元素加入队列,过程是先依据bl的值判断数组是否已经满了,如果是就输出queueisfull,否则bl自加一,并且把参数j的值存入bl指向的数组元素中,请在注释“//**2**”之后添加适当的语句。
(3)完成类queue的成员函数qget()的定义,它的功能是把队列开头的元素提取出队列,并返回该值,过程是先比较el和bl的值判断队列是否已空,如果是就输出queueisempty,否则el自加一,并且把el指向的数组元素返回,请在注释“//**3**”之后添加适当的语句。
程序输出结果如下:
queueinitialized
queueinitialized
3311
4422
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序文件kt11_3.cpp清单如下:
#include
classqueue
{ intq[100];
intbl,el;
public:
queue();
voidqput(intj);
intqget(); };
queue::queue()
{ //**1** }
voidqueue::qput(intj)
{ //**2**
{ cout<<"queueisfull\n";
return; }
bl++;
q[bl]=j; }
intqueue::qget()
{ //**3**
{ cout<<"queueisempty\n";
return0; }
el++;
returnq[el]; }
voidmain()
{
queueaa,bb;
aa.qput(11);
bb.qput(22);
aa.qput(33);
bb.qput(44);
cout<
cout<
}
【参考答案】
(1)bl=el=0;
cout<<"queue initialized\n";
(2)if(bl==100)
(3)if(el==bl)
【试题解析】
主要考查对于具体的一个队列类的掌握,对列是一种特殊的存储结构,应使用先进先出原则。题目中bl和el分别指向队列的开头和结尾,其中(2)是队列的标准插入操作,(3)是队列的标准的删除操作,注意它们的操作方式和先判断后操作的原则。