"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Travessias gráficas

Travessias gráficas

Publicado em 16/08/2024
Navegar:760

Primeiro em profundidade e primeiro em largura são duas maneiras comuns de percorrer um gráfico.
Graph traversal é o processo de visitar cada vértice do gráfico exatamente uma vez. Existem duas maneiras populares de percorrer um gráfico: travessia em profundidade (ou pesquisa em profundidade) e travessia em largura (ou amplitude -primeira pesquisa). Ambas as travessias resultam em uma árvore geradora, que pode ser modelada usando uma classe, conforme mostrado na figura abaixo. Observe que Tree é uma classe interna definida na classe AbstractGraph. AbstractGraph.Tree é diferente da interface Tree definida em Procurando por um Elemento. AbstractGraph.Tree é uma classe especializada projetada para descrever o relacionamento pai-filho dos nós, enquanto a interface Tree define operações comuns, como pesquisar, inserir e excluir em uma árvore. Como não há necessidade de realizar essas operações para uma árvore geradora, AbstractGraph.Tree não é definido como um subtipo de Tree.

Graph Traversals

A classe Tree é definida como uma classe interna na classe AbstractGraph nas linhas 226–293 em AbstractGraph.java. O construtor cria uma árvore com raiz, arestas e uma ordem de pesquisa.

A classe Tree define sete métodos. O método getRoot() retorna a raiz da árvore. Você pode obter a ordem dos vértices pesquisados ​​invocando o método getSearchOrder(). Você pode invocar getParent(v) para encontrar o pai do vértice v na pesquisa. Invocar getNumberOfVerticesFound() retorna o número de vértices pesquisados. O método getPath(index) retorna uma lista de vértices do índice de vértice especificado até a raiz. Invocar printPath(v) exibe um caminho da raiz para v. Você pode exibir todas as arestas da árvore usando o método printTree().

Declaração de lançamento Este artigo está reproduzido em: https://dev.to/paulike/graph-traversals-2jg9?1 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3