阅读以下说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】 已知类LinkedList表示列表类,该类具有四个方法:addElement()、lastElement()、 numberOfElement()以及removeLa

admin2010-04-12  41

问题 阅读以下说明和C++代码,将应填入  (n)  处的字句写在答题纸的对应栏内。
【说明】
已知类LinkedList表示列表类,该类具有四个方法:addElement()、lastElement()、
numberOfElement()以及removeLastElement()。四个方法的含义分别为:
void addElement(Object):在列表尾部添加一个对象;
Object lastElement():返回列表尾部对象;
int numberOfElement():返回列表中对象个数;
void removeLastElement():删除列表尾部的对象。
现需要借助LinkedList来实现一个Stack栈类,c++代码1和c++代码2分别采用继承和组合的方式实现。
【C++代码1】
Class Stack:publiC LinkedList{
public:
void push(Object.o)(addElement(o););    //压栈
Object peek(){return  (1););           //获取栈顶元素
bool isEmpty(){-                        //判断栈是否为空
return numberOfElement()  ==0 ;
);
Object pop(){                          //弹栈
Object o=lastElement();(2)  ;
return o;
};
}:
【c++代码2】
Class Stack{
private:(3)    ;
publiC:
void push(Object O){  //压栈
list.addElement(o);
);
ObjeCt peek(){  //获取栈顶元素
return list.  (4);
);
bool isEmpty(){  //判断栈是否为空
return 1ist.numberOfElement()==0;
);
Object pop(){  //弹栈
Object O=list.lastElement();
1ist.  removeLastElemen七  ();
return 0;);
);
【问题】
若类LinkedList新增加了一个公有的方法removeElement(int index),用于删除列表中第index个元素,则在用继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(int index)?   (5)    (A.继承B.组合)

选项

答案(1)lastElement:() (2)removeL,astElement() (3)LinkedList list(4)lastElement() (5)A

解析 根据代码注释,程序代码中空(1)处用来获取栈顶元素,而父类L.inkedlist提供的成员函数lastElement()可以实现此功能,因此此处调用该函数即可,所以空(1)处填写lastElement ()。空(2)处主要执行“弹栈”操作,根据Object pop()函数的要求,元素弹出栈主要有两个步骤,一是获取栈顶元素,即返回队列尾部对象;二是删除栈顶元素,即删除队列尾部的对象,调用removeLastElement()函数即可实现,所以空(2)处应该填“removeLast。Element()”。空(3)处要求定义一个对象,再根据后面程序代码的提示,可以知道该对象名字为list,类型为LinkedList,所以空(3)处应填”LinkedList list”。空(4)处用于获取栈顶元素,即返回队列尾部的对象,类LinkedlList的lastElement()函数即可实现该功能,所以空(4)处应填“lastElement()”。类的继承是指子类的对象拥有对父类的成员和属性进行访问的权限,通过继承可以使用父类提供的removeElement()方法,类的组合描述的是一个类内嵌其他类的对象作为成员的情况,描述的是一种包含和被包含的关系,所以通过组合Stack对象并不能访问IinkedList提供的方法removeElement(int index),所以空(5)应填A。
转载请注明原文地址:https://kaotiyun.com/show/fBjZ777K
0

最新回复(0)