你知道我怎么开始建一棵继承树吗此树传递给employeeid和managerid。节点之间的链接意味着一种关系-树中较高的节点是较低的节点的管理器。然而,我们希望树上的操作是有效的,例如搜索应该是o(lg n)。有什么想法吗?这可能吗?
编辑:
我真的需要帮助。我能问一下为什么这个问题结束了吗?
最佳答案
我将有一个树来管理关系,同时维护一个映射来跟踪节点本身。
请注意,我没有实施雇用、解雇或晋升方法。它们非常简单,有点超出了基本结构的范围(从下面的代码来看,它们是自解释的)如果他们不马上向你扑来,那你就需要为了你自己多研究一下它是如何工作的!)
class OrgChart {
// Assume these are properly constructed, etc...
static class Employee {
String name;
EmployeeID id;
Employee manager;
Set<Employee> underlings;
}
static class EmployeeID {
// what is the id? id number? division + badge number?
// doesn't matter, as long as it has hashCode() and equals()
}
Map<EmployeeID, Employee> employeesById = new HashMap...
Employee ceo = new CEO.getTheCEO();
public Employee getManagerfor(EmployeeID id) {
Employee dilbert = employeesById.get(id);
return dilbert.manager;
}
public Set<Employees> getEmployeesUnder(EmployeeID phbid) {
Employee phb = employeesbyId.get(phbid);
return phb.underlings;
}
}
关于algorithm - 实现分层树,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7774050/