Я должен поддерживать структуру сотрудников компании. Каждый сотрудник ассоциировал с ним уникальное имя (не два с тем же именем) и уровень (целое число). уровень обозначает, где человек стоит в иерархии. Уровень 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;
}
}
Теперь, какие структуры дерева я должен следовать? Является ли этот узел, который я ищу?
Кажется, что соответствует вашим требованиям, кроме конструктора. Сделайте свой конструктор общим: рассмотрите другие случаи, кроме корня. Является ли элемент единственной информацией, которую вы хотите сохранить? –
Ваш вопрос слишком общий и не указывает, используете ли вы базу данных. Если это так, если вам нужно будет генерировать статистику или использовать другие функции. Пожалуйста уточни. – surfealokesea
@VaibhavRaj да, я так думаю. все, что мне нужно, это имя сотрудника как строка. –