2013-06-30 2 views
0

회사의 직원 구조를 유지해야합니다. 각 직원은 고유 한 이름 (동일한 이름을 가진 두 개가 없음)과 레벨 (정수)을 연관시킵니다. 레벨은 사람이 계층에 서있는 위치를 나타냅니다. 레벨 1 = 가장 높음 (1 명의 직원 만 레벨 1에있을 수 있지만 레벨 i> 1에는 여러 명의 직원이있을 수 있음). 각 레벨 i 직원은 직속 상사 인 i-1 레벨 직원으로 근무합니다. 이제 어떤 직원이 A라고 말하면 직원 A ', A' '... A는 A', A는 A ''등으로 작동합니다. 적절한 트리 구조를 만들어야합니다.회사의 계층 적 구조 저장

나는 다음과 같은 방법을 구현해야합니다

addEmployee (새, 보스) - E1 제거되고 모든 직원 - 보스 바로 아래에

delEmployee (E1, E2)이 작동 새로운 e1 이하는 이제 e2에서 작동합니다. (참고 - E1과 E2는 동일한 수준으로 제공됩니다)

는 는

는 lowestCommonBoss은 (E1, E2) - 자기 설명

printEmployees() - 모든 직원의 인쇄 이름은 현명한

수평

내가 노드 클래스 생성 된 않았다 이제 어떻게 : 지금

public class Node { 
    String element; 
    Node parent; 
    protected ArrayList<Node> children; 
    protected int level; 

    Node(String e) { 
    this.element = e; 
    this.parent = null; 
    this.children = new Arraylist(); 
    this.level = 1; 
    } 
} 

, 내가 트리 구조의 종류를 따라야을? 이 노드가 내가 찾고있는 노드인가?

+0

생성자를 제외하고 요구 사항과 일치하는 것 같습니다. 생성자를 일반화하십시오. 루트를 제외한 다른 경우를 고려하십시오. 엘리먼트 만 유지하고 싶은 정보입니까? –

+0

귀하의 질문은 너무 일반적이고 데이터베이스를 사용하고 있는지 여부를 지정하지 않습니다. 그렇다면 통계를 생성하거나 다른 기능을 사용해야합니다. 명시 해주세요. – surfealokesea

+0

@VaibhavRaj 네, 그렇게 생각합니다. 필요한 것은 문자열의 직원 이름뿐입니다. –

답변

0

네, 원하는 모든 트리 구조를 사용할 수 있습니다. 당신이 언급 한 구조는 나에 따라 작동 할 것입니다.