刷题刷出新高度,偷偷领先!偷偷领先!偷偷领先! 关注我们,悄悄成为最优秀的自己!

简答题

请对以下关于实现栈类Stack的题目进行修改和完善。 已知类LinkedList表示列表类,具有四个方法:addElement()、lastElement()、numberOfElement()和removeLastElement()。现需要借助LinkedList来实现一个Stack栈类,C++代码1和C++代码2分别采用继承和组合的方式实现。另外,类LinkedList新增加了一个公有的方法removeElement(int index),用于删除列表中第index个元素。 [C++代码1](继承方式) ```cpp class Stack : public LinkedList { public: void push(Object o) { addElement(o); } // 压栈 Object peek() { return lastElement(); } // 获取栈顶元素 bool isEmpty() { return numberOfElement() == 0; } // 判断栈是否为空 Object pop() { Object o = lastElement(); removeLastElement(); return o; } // 弹栈 }; ``` [C++代码2](组合方式) ```cpp class Stack { private: LinkedList list; // 使用LinkedList类的实例来实现栈的功能 public: void push(Object o) { list.addElement(o); } // 压栈 Object peek() { return list.lastElement(); } // 获取栈顶元素 bool isEmpty() { return list.numberOfElement() == 0; } // 判断栈是否为空 Object pop() { Object o = list.lastElement(); list.removeLastElement(); return o; } // 弹栈 }; ``` 若类LinkedList新增加了一个公有的方法removeElement(int index),请问在继承和组合两种实现栈类Stack的方式中,哪种方式下Stack对象可访问方法removeElement(int index)?

使用微信搜索喵呜刷题,轻松应对考试!

答案:

(1) lastElement()

(2) removeLastElement()

(3) LinkedList list

(4) lastElement()

(5)A

解析:

本题考查面向对象编程中继承和组合的概念,以及C++语言的应用。

  1. 对于第一和第二个问题,C++代码1采用的是继承方式实现栈类Stack。在这种情况下,Stack类继承了LinkedList类的所有方法,包括addElement()、lastElement()、numberOfElement()和removeLastElement()。因此,在Stack类中可以直接使用这些方法。对于获取栈顶元素,使用lastElement()方法;对于弹栈操作,需要同时获取并删除栈顶元素,所以应使用removeLastElement()方法。
  2. 对于第三个问题,C++代码2采用的是组合方式实现Stack类。在这种情况下,Stack类内部有一个LinkedList类型的成员变量(假设名为list)。因此,Stack类需要通过这个成员变量来访问LinkedList的方法。所以,在Stack类中定义list成员变量,并在peek方法中通过list调用lastElement()方法获取栈顶元素。
  3. 对于第四个问题,如果LinkedList类新增了一个公有方法removeElement(int index),在继承方式中,子类Stack可以直接访问和使用这个方法。而在组合方式中,Stack需要通过其内部的LinkedList对象(假设名为list)来调用这个方法,即需要通过list.removeElement(int index)的形式来访问。因此答案是A,即继承方式下Stack对象可访问方法removeElement(int index)。
创作类型:
原创

本文链接:请对以下关于实现栈类Stack的题目进行修改和完善。 已知类LinkedList表示列表类,具有四

版权声明:本站点所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明文章出处。

让学习像火箭一样快速,微信扫码,获取考试解析、体验刷题服务,开启你的学习加速器!

分享考题
share