5 / 11
【问题 3】(2 分)
若将元素 10 插入到堆 A =〈15, 13, 9, 5, 12, 8, 7, 4, 0, 6, 2, 1〉中,调用 maxHeapInsert函数进行操作,则新插入的元素在堆 A 中
第(9)个位置(从 1 开始)。
试题五(共 15 分)
阅读下列说明和 C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】
某公司的组织结构图如图5-1 所示,现采用组合(Composition)设计模式来构造该公司的组织结构,得到如图5-2 所示的类图。
其中Company 为抽象类,定义了在组织结构图上添加(Add)和删除(Delete)分司/办事处或者部门的方法接口。类 ConcreteCompany 表示具体的分公司或者办事处,分公司或办事处下可以设置不同的部门。类 HRDepartment 和 FinanceDepartment分别表示人力资源部和财务部。 【C++代码】
#include #include
class Company { // 抽象类 protected:
string name; public:
Company(string name) { (1) = name; } (2) ; // 增加子公司、办事处或部门 (3) ; // 删除子公司、办事处或部门 };
class ConcreteCompany : public Company { private:
list< (4) > children; // 存储子公司、办事处或部门 public:
ConcreteCompany(string name) : Company(name) { } void Add(Company* c) { (5) .push_back(c); } void Delete(Company* c) { (6) .remove(c); } };
class HRDepartment : public Company { public:
HRDepartment(string name) : Company(name) {} // 其它代码省略 };
class FinanceDepartment : public Company {
6 / 11
public:
FinanceDepartment(string name) : Company(name) {} // 其它代码省略 };
void main() {
ConcreteCompany *root = new ComcreteCompany(\北京总公司\ root->Add(new HRDepartment(\总公司人力资源部\ root->Add(new FinanceDepartment(\总公司财务部\
ConcreteCompany *comp = new ConcreteCompany(\上海分公司\comp->Add(new HRDepartment(\上海分公司人力资源部\ comp->Add(new FinanceDepartment(\上海分公司财务部\ (7) ;
ConcreteCompany *comp1 = new ConcreteCompany(\南京办事处\comp1->Add(new HRDepartment(\南京办事处人力资源部\comp1->Add(new FinanceDepartment(\南京办事处财务部\ (8) ; //其它代码省略 }
试题六(共 15 分)
阅读下列说明和 Java 代码,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明】说明及图表和上题相同。 【Java 代码】 import java.util.*;
(1) Company {
Protected String name;
Public Company(String name) { (2) = name; }
Public abstract void Add(Company c); // 增加子公司、办事处或部门 Public abstract void Delete(Company c); // 删除子公司、办事处或部门 }
class ConcreteCompany extends Company {
private List< (3) > children = new ArrayList< (4) >(); // 存储子公司、办事处或部门
public ConcreteCompany(String name) { super(name); } public void Add(Company c) { (5) .add(c); } public void Delete(Company c) { (6) .remove(c); } }
class HRDepartment extends Company {
public HRDepartment(String name) { super(name); } // 其它代码省略 }
class FinanceDepartment extends Company {
public FinanceDepartment(String name) { super(name); } // 其它代码省略 }
public class Test {
public static void main(String[] args) {
ConcreteCompany root = new ConcreteCompany(\北京总公司\root.Add(new HRDepartment(\总公司人力资源部\root.Add(new FinanceDepartment(\总公司财务部\
ConcreteCompany comp = new ConcreteCompany(\上海分公司\comp.Add(new HRDepartment(\上海分公司人力资源部\comp.Add(new FinanceDepartment(\上海分公司财务部\ (7) ;
ConcreteCompany comp1 = new ConcreteCompany(\南京办事处\ comp1.Add(new HRDepartment(\南京办事处人力资源部\ comp1.Add(new FinanceDepartment(\南京办事处财务部\ (8) ; // 其它代码省略 } }
7 / 11
8 / 11
相关推荐: