2012-01-16 5 views
0

Как я могу представить древовидную структуру, как показано ниже, в java?Строка данных дерева дерева Java

"root" 
    | | 
"leaf1" "leaf2" 
     | | 
    "leaf3" "leaf4" 
     | 
    "leaf5" 

Есть ли какие-либо встроенные или пользовательские классы, на которые могут меня сослаться?

EDIT: Мне нужно иметь возможность легко проходить через узлы.

+0

Вот, для начала: http://stackoverflow.com/questions/3522454/java-tree-data-structure –

+0

Как я использую это без качелей ? – user908683

+0

Существует отличный пример ответа из ответа 'javax.swing', который в основном расширяет ответ Адриана (хотя я скажу, что ответ Стивена C имеет отличный контекст). –

ответ

3

В библиотеках классов Java нет общего типа дерева или в коллекциях Guava или Apache Commons.

Самое простое решение - реализовать тип дерева самостоятельно, чтобы выполнить именно то, что вам нужно. Основная функциональность дерева тривиальна ... по модулю, что детали в значительной степени зависят от того, что дерево должно содержать и как ваш прецедент требует от него поведения.

(Если вы хотите понять, почему нет универсального типа дерева, попытайтесь получить голову вокруг дискуссии по этому вопросу Гуава - http://code.google.com/p/guava-libraries/issues/detail?id=174)

0

Просто сделайте свой собственный класс Node:

Node { 
T value; 
Node left; 
Node right; 
} 

Для более сложной реализации см в Java N-арной дерево DefaultMutableTreeNode

1

Попробуйте это [очень общие, хотя]:

public class Tree { 
private Node root; 

public Tree(String rootData) { 
    root = new Node(); 
    root.data = rootData; 
    root.children = new ArrayList<Node>(); 
} 

private class Node { 
    private String data; 
    private Node parent; 
    private List<Node> children; 
} 
} 
Смежные вопросы