Como construir uma árvore em java
UMA árvore
Conteúdo
Antes de você pode realmente criar um controle de árvore, você deve construir a árvore que exibe. A maneira mais fácil de fazer isso é usar o DefaultMutableTreeNode classe.
o DefaultMutableTreeNode classe implementa a TreeNode interface. Como resultado, você pode usar DefaultMutableTreeNode objetos para qualquer um dos métodos listados nesta tabela que exigem TreeNode objetos.
Construtor | Descrição |
---|---|
DefaultMutableTreeNode () | Cria um nó de árvore vazia. |
DefaultMutableTreeNode (Object UserObject) | Cria um nó de árvore com o objeto de usuário especificado. |
Método | Descrição |
Void Adicionar (criança TreeNode) | Adiciona um nó filho. |
TreeNode getFirstChild () | Obtém o primeiro deste nó&crianças rsquo-S. |
DefaultMutableTreeNode getNextSibling () | Obtém o próximo irmão. |
TreeNode getParent () | Obtém este nó&rsquo-s-mãe. |
Objecto getUserObject () | Obtém o objeto de usuário para este nó. |
o DefaultMutableTreeNode classe fornece três características básicas para cada nó:
o utilizador objeto, que contém os dados representados pelo nó. Você pode usar objetos de qualquer tipo que você deseja para o objeto usuário. O controle de árvore chama o usuário objeto de para sequenciar método para determinar o texto a ser exibido para cada nó. A maneira mais fácil de configurar o objeto de usuário é passá-lo através do DefaultMutableTreeNode construtor.
O pai deste nó, a menos que o nó passa a ser a raiz.
Quaisquer filhos deste nó, a menos que o nó passa a ser um nó folha. Você cria nós filho chamando o adicionar método.
Video: Árvore binária - Implementação em Java
o DefaultMutableTreeNode classe tem muitos mais métodos para navegar na árvore do que os mostrados aqui. Dado um nó raiz, no entanto, você pode usar o getFirstChild e getNextSibling métodos para “andar” a árvore inteira e acessar cada nó.
Video: Carpete de Musgo de Java // TRICK TIPS PET HOBBY
O tee que é construído aqui lista mostra spinoff de três programas de televisão populares do passado:
O Griffith Show Andy, que tinha dois spinoffs: Gomer Pyle, U.S.M.C., e Mayberry R.F.D.
Todos na família, que gerou directamente quatro cisões: Os Jeffersons, Maude, Gloria, e Archie Bunker Place. Além disso, dois desses spinoffs teve spinoffs de sua própria envolvendo as empregadas: empregada doméstica The Jeffersons’ tornou-se o tema de uma mostra chamada Efetuando check-in, e empregada doméstica de Maude se tornou o personagem principal Bons tempos.
Happy Days, que cindido Mork e Mindy, Laverne e Shirley, e Joanie Loves Chachi.
Video: Como plantar musgo de Java - Aquario Plantado #2
Você pode tomar muitas abordagens para a construção de árvores, a maioria dos quais envolvem alguma programação recursiva. A maioria dos programas reais que trabalham com árvores precisam de algum tipo de programação recursiva para construir a árvore.
O primeiro passo na criação de uma árvore está declarando um DefaultMutableTreeNode variável para cada nó que não é um nó folha. Para o exemplo série de TV, vamos começar com o seguinte código:
DefaultMutableTreeModel andy, Archie, feliz, george, maude-
Estas variáveis podem ser variáveis locais no construtor quadro porque depois que você começa a árvore configurado, você não vai precisar mais essas variáveis. Você vê por que você não precisa de variáveis para os nós de folha em um momento.
Em seguida, você criar o nó raiz:
DefaultMutableTreeNode raiz = new DefaultMutableTreeNode ("Spinoffs famosos") -
Agora, para simplificar a tarefa de criar todos os outros nós, você cria um método auxiliar chamado makeShow:
privado DefaultMutableTreeNode makeShow (título String, DefaultMutableTreeNode pai) {DefaultMutableTreeNode show-show = new DefaultMutableTreeNode (título) -parent.add (show) -Retornar show-}
Este método aceita uma string e outro nó como parâmetros e retorna um nó cujo objeto de usuário é definido para o Corda parâmetro. O nó retornado também é adicionado ao nó pai como uma criança. Assim, você pode chamar esse método tanto para criar um novo nó e colocar o nó na árvore.
O próximo passo é criar alguns nós. Continuando o exemplo, você começa com os nós para O Show de Andy Griffith e seus desdobramentos:
Andy = makeShow ("O Show de Andy Griffith", Raiz) -makeShow ("Gomer Pyle, U.S.M.C.", Andy) -makeShow ("Mayberry R.F.D.", Andy) -
Aqui, makeShow é chamado para criar um nó para O Griffith Show Andy, com o nó raiz especificado como o seu progenitor. O nó retornado por esse método é salvo no andy variável. Então makeShow é chamado duas vezes para criar os shows spinoff, desta vez especificando andy como o nó pai.
porque nem Gomer Pyle, U.S.M.C., nem Mayberry R.F.D. tinha um show spinoff, você não tem que passar esses nós como o parâmetro pai para o makeShow método.
Em seguida, no exemplo, você tem que criar nós de Todos na família e seus desdobramentos:
Video: plantando tronquinho bonsai .wmv
archie = makeShow ("Todos na família", Raiz) -George = makeShow ("os Jeffersons", Archie) -makeShow ("Efetuando check-in", George) -maude = makeShow ("Maude", Archie) -makeShow ("Bons tempos", Maude) -makeShow ("Gloria", Archie) -makeShow ("Archie Bunker Lugar", Archie) -
Neste caso, ambos os Jeffersons e Maude tem nós filhos do seu próprio. Como resultado, as variáveis são necessários para estes dois shows, para que possam ser passado como o parâmetro pai para makeShow quando você cria os nós de Efetuando check-in e Bons tempos.
Finalmente, aqui está o código que cria os nós para os Dias felizes e seus desdobramentos:
feliz = makeShow ("Dias felizes", Raiz) -makeShow ("Mork e Mindy", Feliz) -makeShow ("Laverne e Shirley", Feliz) -makeShow ("Joanie Loves Chachi", Feliz) -
A árvore completa é criada com êxito na memória, para que possa continuar com a tarefa de criar um JTree componente para mostrar a árvore.