Quais são os tipos de árvores em estruturas de dados?


Melhor resposta

Existem diferentes tipos de estruturas de dados em árvore. Alguns deles são

  1. Árvore Binária : Esta é a forma mais básica de estrutura de árvore. Onde cada nó pode ter no máximo dois filhos. Uma árvore binária perfeita é uma árvore binária na qual todos os nós internos têm dois filhos e todos as folhas têm o mesmo profundidade ou o mesmo nível. Uma árvore binária completa (às vezes chamada de árvore binária apropriada [15] ou plana) é uma árvore na qual cada nó da árvore tem 0 ou 2 filhos. Em um completo árvore binária cada nível, exceto possivelmente o último, é completamente preenchido e todos os nós no último nível estão o mais à esquerda possível. No infinito completo árvore binária, cada nó tem dois filhos.
  2. Árvore de pesquisa binária: BST é uma árvore binária com certas propriedades como, e o filho esquerdo do nó fornecido contém um valor menor que igual ao nó fornecido e o filho à direita contém o nó maior que o nó fornecido.
  3. Árvore AVL ou árvore binária balanceada por altura : É uma variação da árvore binária onde a diferença de altura entre a subárvore esquerda e direita pode ser no máximo 1. Se a qualquer momento elas diferirem em mais de um, o rebalanceamento é feito para restaurar esta propriedade. Pesquisa, inserção e exclusão levam tempo O (log n) em ambos os casos médios e piores, onde n é o número de nós na árvore antes da operação.
  4. Árvore vermelha-preta : outra variante da árvore binária semelhante à árvore AVL, é uma árvore de pesquisa binária com equilíbrio automático. Nesta árvore, os nós são coloridos em vermelho ou preto.
  5. Árvore de exibição: uma árvore de exibição é uma árvore de pesquisa binária autoajustável com o propriedade adicional que elementos acessados ​​recentemente são de acesso rápido novamente. Todas as operações normais em uma árvore de pesquisa binária são combinadas com uma operação básica, chamada splaying. Espalhar a árvore para um determinado elemento reorganiza a árvore de modo que o elemento seja colocado na raiz da árvore.
  6. Árvore N-ária: Nesta árvore, a limitação da árvore binária é removida. Aqui, um nó pode ter no máximo n filhos. Como a árvore binária, pode ser uma árvore n-ária completa, completa ou perfeita. N-ário é conhecido como floresta.
  7. Estrutura Trie : Na ciência da computação, um trie, também chamado de árvore digital e, às vezes, raiz árvore ou árvore de prefixo (já que podem ser pesquisados ​​por prefixos), é uma estrutura de dados de árvore ordenada que é usada para armazenar um conjunto dinâmico ou array associativo onde as chaves são geralmente strings. Todos os descendentes de um nó têm um prefixo comum da string associada a esse nó, e a raiz está associada à string vazia.
  8. Árvore de sufixos : Trie e árvore de sufixo estão intimamente relacionadas. uma árvore de sufixos (também chamada de árvore PAT ou, em uma forma anterior, árvore de posição) é um trie compactado contendo todos os sufixos do texto fornecido como suas chaves e as posições no texto como seus valores. Árvores de sufixo permitem implementações particularmente rápidas de muitas operações de string importantes.
  9. Árvore de Huffman: A árvore de Huffman é uma árvore binária classificada por frequência amplamente usada na compactação dados. A árvore de Huffman é construída para alocar uma palavra de código curta para um texto longo com base em sua frequência de ocorrências.
  10. Estrutura de heap [Editar conforme sugerido ]: A estrutura de heap é outra estrutura de árvore amplamente usada com uma propriedade de ordenação específica. Existem dois tipos de heap – heap mínimo e heap máximo. Em um heap mínimo, o pai de um nó deve ser menor que os valores de todos os seus filhos. Da mesma forma, no heap máximo o pai sempre tem um valor maior em comparação com todos os seus filhos. Uma implementação comum de heap é Binary heap onde cada pai pode ter no máximo dois filhos.

Outra estrutura de árvore popular inclui, mas não exaustivamente, B -Tree, B + – tree, R-Tree, Counted-B Tree, KD tree (ou K-dimensional BST), árvore de decisão (a variante da árvore n-ária), árvore Markel, árvore Fenwick (ou árvore de índice binário), Árvore de intervalo.

Resposta

  • Modelo como código formando uma árvore de dependências.

Agora, tenha paciência comigo por 5 minutos para explicar em detalhes como usamos a árvore como uma estrutura de dados para resolver nosso caso de uso complexo.

Para explicar o cenário, vamos dar um pequeno exemplo de obtenção de dados de uma API por meio de autenticação baseada em token.

Então, se você deseja alcançar este feito,

  • primeiro você obtém o nome de usuário, a senha e as informações do locatário e chama a API para buscar o token.
  • Em seguida, com o token obtido, chame a API actial passando-o nos cabeçalhos da solicitação.

Este é um cenário muito simples, mas as coisas ficam bem complexas quando você tem que executar uma cadeia de 10 API “S cada uma dependente uma da outra.

É aqui que criamos essa abordagem de árvore de dependência

Primeiro, precisamos formar um modelo como este

Agora, depois disso, formamos uma árvore de dependência como esta

Qualquer coisa definida como $ {} significava que é dependente de outra saída de variáveis.

ResourceOps significa API “s a serem executadas

É assim que a árvore de dependências é criada

  • Avaliamos parâmetros que são independentes e anexe-os à raiz.
  • Chegamos então às operações de recursos e entendemos que isso depende dos valores anexados ao nó raiz. Então, nós os separamos deles da raiz e os anexamos ao novo nó.
  • O mesmo será feito para todas as operações de recursos e saída.

Assim que criarmos a árvore de dependências, vamos para o nó folha, execute-o e depois vá para o pai com o resultado da execução do nó folha e, em seguida, seu pai e seu pai até chegarmos ao nó superior.

Assim que chegarmos ao nó superior, obtemos o resultado e o retornamos como uma resposta de sucesso http.

Se houver algum erro na execução, retornamos a resposta de erro de uma forma legível. p>

Acho que não expliquei parte e parte disso, mas só quero destacar como resolvemos um problema do mundo real com a estrutura de dados em árvore para ações dinâmicas a serem executadas sem um desenvolvedor escrevendo algum código.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *