2013-06-30 2 views
0

Я должен поддерживать структуру сотрудников компании. Каждый сотрудник ассоциировал с ним уникальное имя (не два с тем же именем) и уровень (целое число). уровень обозначает, где человек стоит в иерархии. Уровень 1 = самый высокий (только 1 сотрудник может быть на уровне 1, но на уровне i> 1 может быть несколько сотрудников). Каждый сотрудник уровня i работает под сотрудником i-1 уровня, который является его непосредственным начальником. Теперь, учитывая, что любой сотрудник говорит A, есть/есть сотрудники A ', A' '... такие, что A работает под A', A 'работает под A' 'и так далее. Мне нужно создать подходящую древовидную структуру.Хранение иерархической структуры компании

Мне нужно реализовать следующие методы:

addEmployee (новый, босс) - новый будет работать сразу под боссом

delEmployee (e1, e2) - e1 будут удалены и все сотрудники под 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

Да, вы можете использовать любую древовидную структуру, которую хотите. Структура, о которой вы упомянули, будет работать по мне.