使用VC6打开考生文件夹proj2下的工程Proj2,其中有元素类Element和队列类Queue的定义。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的输出结果应为: 3 8 5 0 5 0 7 注意:只

admin2017-07-04  26

问题 使用VC6打开考生文件夹proj2下的工程Proj2,其中有元素类Element和队列类Queue的定义。请在程序中的横线处填写适当的代码,然后删除横线,以实现上述类定义。此程序的输出结果应为:
    3 8 5 0
    5 0 7
    注意:只能在横线处填写适当的代码,不要改动程序中的其他内容。
#include
#include
#include
using namespace std;
#define MaxLength i 00
class Element {  //“元素”类
public:
    int n;
    Element(int i=0):n(i){)
  };
  class Queue{   //“队列”类
    Element * element;
    //指向存储元素的数组的指针
    int tail;//队尾元素的下标
public:
    Queue():element(new Element
[100]),tail(一1){}
    一Queue(){delete[]element;}
    void push(Element ele);  //在队列
尾端添加一个元素
    Element pop();
//在队列首端删除一个元素,返回被删元素
    Element front()const{return element[0];
//返回队首元素,但不从队列中删除该元素
    //******found******
    int  size()const{  return
(_______);}//返回元素个数
    void show()const,
//显示集合中所有元素
};
void Queue::push(Element ele){
    if(tail==MaxLength一1)
    return;//空间满,不做任何处理
    //******found******
    ________;
}
Element Queue::pop(){
    if(Size()==0)exit(1);
    //队列空,不做任何处理
    Element tmp=element[0];
    for(int i=0;i    element=element[i+1];
    //******found******
    __________;
    return tmp;
}
VOid Queue::show ()const {
    //******found******
    for(_________)
    cout<.n<<’’;
    cout<}
int main(){
    Queue q;
    q.push(3);
    q.push(8);
    q.push(5);
    q.push(0);
    q.show();
    q.pop();
    q.pop();
    q.push(7);
    q.show();
    return 0;
}

选项

答案(1)tail +1 (2)element[++tail] =ele (3)tail-- (4)int i=0;i <=tail ; i++

解析 题意定义了Element类,表示队列中的元素,它包含一个成员n,表示元素的值;定义了Queue类,表示队列,它包含两个成员:element是动态分配的一个数组,每个元素都是Element类型;tail表示队列尾部的下标值,指向element数组的最后一个元素,当数组为空时,tail的值为一1,所以初始化为一1;另外Queue类还定义了若干成员函数:构造函数为ele.ment数组动态分配100个元素空间,初始化tail为一1;析构函数释放element;push()函数向队列中添加一个新元素ele,即将形参ele存放到数组尾部,并将tail自增1;pop()函数将element数组的第一个元素(下标为0)从数组中删除(采用移动后续所有元素的方式),并作为函数返回值返回;front()函数返回队列首元素;size()函数返回当前element数组的元素个数;show()函数将element数组中的元素的n值输出,由上面的分析,补充代码如下:
    (1)size()函数返回element数组的元素个数,tail的值是element数组的最后一个元素的下标,所以返回tail+l即可。
    (2)push()函数将参数ele插入到队列的尾部,即将ele保存到element数组下标为(tail+1)的位置:element[++tail]=ele;
    (3)poP()函数将element数组的首元素保存到tmp变量中,然后遍历element数组,将下标从1开始的元素逐个赋给前一个元素,再把tail的值自减1,tail--;
(4)show()函数需要遍历element数组,然后将元素的n值输出,遍历下标的变量需要定义为i,i初值从0开始,直到i等于最后一个元素的下标,即tail。int i=0;i<=tail;i++
转载请注明原文地址:https://kaotiyun.com/show/uLAp777K
0

最新回复(0)