2013-04-21 5 views
0

У меня аналогичная проблема с адресованной в StackOverflow статье (Creating a java hierarchial treeset from a flat list)Генерации уникального ключа на основе иерархии дерева

То, что я в настоящее время пытаюсь сделать это распечатать дерево в файл со следующим:

  • Сначала необходимо распечатать родителей, поэтому, если они импортированы (где-то), они сначала создаются, поэтому потом дети могут быть созданы под ними.
  • Мне нужно создать уникальный ключ на основе иерархии, например:

    Root> Родитель> Ребенок> GrandChild1

    Root> Родитель> Ребенок> GrandChild2

> является разделитель для узлов, но на самом деле неважно, что это такое ...

Может ли кто-нибудь предложить способ, которым я могу сгенерировать уникальный ключ?

ответ

0

Я не уверен, что вы подразумеваете под ключом и т. Д., Но это звучит тривиально.

Чтобы напечатать дерево, используя корень первого использования префикса печати

Вот как вы печатаете префикс (это дерево имеет номера, но это не имеет значения, вы получите идею). В приведенном ниже методе используется рекурсия.

private void printPrefix(Node<?> node){ 

     //If node is null, reached end of chain, return to caller 
     if (node==null) { 
      return; 
     } 

     //Print self 
     System.out.print(node.getValue()); 
     System.out.print(" "); 

     //Print all children 
     for (Source child : node.children) //changed for multiple 
{ 
    printPrefix(child); 
} 

     return; 
    } 

В лучшем предложении структуры данных вы должны рассмотреть b-дерево. https://www.google.com/search?q=b+tree&ie=UTF-8&oe=UTF-8&hl=en&client=safari#itp=open0

+0

Благодарим за отзыв. У моей структуры нет левого и правого узлов, так как я могу использовать вышеизложенное? – user2304232

+0

Изменено для адресации нескольких детей –

Смежные вопросы