Мне нужно написать algorithm
для моего проекта. Ниже приведена проблемаАлгоритм для удаления дочерних элементов из массива
Дерево, подобное структуре, для которой открыта только одна функциональность, т.е. до **getAllChildNodes**
, которая возвращает все дочерние объекты определенного узла. Теперь мне задан массив узлов, я должен сохранить только верхний родительский узел.
Пример: Допустим, есть 3 дерева
Tree 1 : P1 has two children C11 & C12
Tree 2 : P2 has 1 children C21, and C21 has 2 child C22, C23
Tree 3 : P3 has 2 Children C31 and C32
Now if given an array say { C11, C21, C22 , P1, P3, C32}
The expected result is { C21, P1 , P3 }
Позвольте мне знать, если требуется больше информации с моей стороны.
Дополнительная информация: Я сделал это, сначала получив все дочерние элементы первого элемента массива, а затем сравним с остальными элементами массива и аналогично с каждым элементом. но это имеет большую сложность. i.e n * n * getAllChildNodes. Я здесь для лучшего предложения
Я пытаюсь сделать это первым получать все ребенка первого элемента массива и затем сравните с остальными элементами массива, но это имеет большую сложность. То есть n * n * getAllChildNodes. Я здесь для лучшего предложения –
Не могли бы вы получить еще одну функцию: getParentNode (childNode)? Если вы могли бы получить его, то просто родительские имена всех дочерних узлов и просто удалите дубликаты. – ritesh
Нет такого метода –