你知道我怎么开始建一棵继承树吗此树传递给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/

10-12 04:49