Galeria de mapas mentais Estrutura de Dados Capítulo 5-Árvore e Árvore Binária
Capítulo 5 de "Estrutura de Dados" - classificando o conhecimento de árvores e árvores binárias, incluindo os conceitos básicos de árvores, o conceito de árvores binárias, travessia de árvore binária e árvores binárias de dicas, etc.
Editado em 2022-11-23 16:07:00Microbiologia medica, Infezioni batteriche e immunità riassume e organizza i punti di conoscenza per aiutare gli studenti a comprendere e ricordare. Studia in modo più efficiente!
La teoria cinetica dei gas rivela la natura microscopica dei fenomeni termici macroscopici e le leggi dei gas trovando la relazione tra quantità macroscopiche e quantità microscopiche. Dal punto di vista del movimento molecolare, vengono utilizzati metodi statistici per studiare le proprietà macroscopiche e modificare i modelli di movimento termico delle molecole di gas.
Este é um mapa mental sobre uma breve história do tempo. "Uma Breve História do Tempo" é um trabalho científico popular com influência de longo alcance. Ele não apenas introduz os conceitos básicos da cosmologia e da relatividade, mas também discute os buracos negros e a expansão. Do universo. questões científicas de ponta, como inflação e teoria das cordas.
Microbiologia medica, Infezioni batteriche e immunità riassume e organizza i punti di conoscenza per aiutare gli studenti a comprendere e ricordare. Studia in modo più efficiente!
La teoria cinetica dei gas rivela la natura microscopica dei fenomeni termici macroscopici e le leggi dei gas trovando la relazione tra quantità macroscopiche e quantità microscopiche. Dal punto di vista del movimento molecolare, vengono utilizzati metodi statistici per studiare le proprietà macroscopiche e modificare i modelli di movimento termico delle molecole di gas.
Este é um mapa mental sobre uma breve história do tempo. "Uma Breve História do Tempo" é um trabalho científico popular com influência de longo alcance. Ele não apenas introduz os conceitos básicos da cosmologia e da relatividade, mas também discute os buracos negros e a expansão. Do universo. questões científicas de ponta, como inflação e teoria das cordas.
Números e árvores binárias
Conceitos básicos de árvores
definição
Uma árvore é um conjunto finito de n nós. Uma árvore não vazia deve satisfazer:
Existe apenas um nó raiz
Quando n>1, os nós restantes podem ser divididos em m conjuntos finitos disjuntos Ti, cada conjunto é uma subárvore da raiz.
terminologia Básica
ancestrais, descendentes, pais, filhos, irmãos
Grau: o número de filhos do nó
O grau máximo de um nó é chamado de grau da árvore
Nós folha (nós terminais), nós ramificados (nós não terminais)
A soma dos graus dos nós da árvore = a soma do número de ramos = o número de nós - 1
Profundidade: começando no nó raiz e acumulando camada por camada de cima para baixo.
Altura: começando no nó da folha e acumulando camada por camada de baixo para cima.
Árvore ordenada, árvore não ordenada
caminho, comprimento do caminho
Floresta: uma coleção de árvores m disjuntas
natureza
O número de nós na árvore = a soma dos graus de todos os nós 1
Existem no máximo m^(i-1) nós no i-ésimo nível de uma árvore de grau m.
Uma árvore m-ária com altura h tem no máximo (m^h-1)/(m-1) nós.
A altura mínima de uma árvore m-ária com n nós é:
Conceito de árvore binária
Definição e características
Definição: Cada nó possui no máximo duas subárvores, e as subárvores podem ser divididas em subárvores esquerda e direita.
árvore binária especial
árvore binária completa
A altura é h e o número de nós é 2 ^ h-1
Para o nó numerado i
pais:
Filho esquerdo: 2i
Filho certo: 2i 1
árvore binária completa
O número de cada nó corresponde a uma árvore binária completa (ou seja, apenas o nó folha à direita está vazio)
natureza
①Se i≤Ln/2", então o nó i é um nó ramificado, caso contrário, é um nó folha.
②Os nós folha só podem aparecer nos dois níveis maiores. Os nós folha no nível maior são organizados em sequência na posição mais à esquerda do nível.
③Se houver um nó com grau 1, só poderá haver um, e o nó terá apenas filhos esquerdos, mas nenhum filho direito.
④Após a numeração em ordem hierárquica, uma vez que um nó (numerado i) aparece como um nó folha ou tem apenas um filho esquerdo, o número é maior que i Os nós são todos nós folha.
⑤ Se n for um número ímpar, então cada nó de ramificação terá um filho esquerdo e um filho direito; se r for um número par, o nó de ramificação com o maior número (numerado n/2) terá apenas um filho esquerdo e nenhum filho direito; , e os outros nós de ramificação têm Há filhos que clicam para a esquerda e para a direita.
⑥A altura de uma árvore binária completa com n nós é:
Árvore de classificação binária
Palavra-chave da subárvore esquerda<nó raiz<subárvore direita
As subárvores esquerda e direita são, cada uma, uma árvore de classificação binária.
árvore binária balanceada
A diferença de profundidade entre a subárvore esquerda e a subárvore direita de qualquer nó da árvore não excede 1
Propriedades de árvores binárias
O número de nós folha em uma árvore binária não vazia = o número de nós com grau 2 1, ou seja, n0=n2 1
Existem no máximo 2 ^ (k-1) nós no k-ésimo nível de uma árvore binária não vazia.
Uma árvore binária de altura h possui no máximo 2 ^ h-1 nós.
Estrutura de armazenamento de árvore binária
estrutura de armazenamento sequencial
estrutura de armazenamento em cadeia
Travessia de árvore binária e dicas de árvores binárias
Travessia de árvore binária
Travessia de pré-encomenda (NLR)
Travessia em ordem (LNR)
Travessia pós-ordem (LRN)
Algoritmo recursivo → não recursivo (com ajuda de pilha)
Algoritmo não recursivo para travessia em ordem
Passagem de nível (com a ajuda de filas)
Construa uma árvore binária a partir de uma sequência de travessia
Uma árvore binária pode ser determinada exclusivamente por sua sequência de pré-ordem (ou pós-ordem) e sequência de inordem.
O primeiro nó da sequência de pré-ordem deve ser o nó raiz, e o nó raiz divide a sequência de ordem em duas sequências: as subárvores esquerda e direita.
Encontre as subárvores esquerda e direita na pré-ordem de acordo com as subárvores esquerda e direita na ordem e repita as etapas acima recursivamente.
Uma árvore binária pode ser determinada exclusivamente por sua sequência hierárquica e sequência ordenada.
De acordo com as sequências de pré-ordem e pós-ordem da árvore binária, o relacionamento ancestral de alguns nós pode ser determinado: se a pré-ordem for aX e a pós-ordem for Xa, então os nós do conjunto Se eles são irmãos, a ordem deve ser consistente, ou seja, o irmão da esquerda vem primeiro)
pista de árvore binária
conceito
Construa uma árvore binária de dicas em ordem
Clue árvore binária com nó líder
Travessia de árvores binárias com pistas em ordem
Encontre o primeiro nó na sequência inorder na árvore binária de dicas inorder
Encontre o sucessor do nó p na árvore binária de dicas em ordem na sequência em ordem
Algoritmo de travessia em ordem para árvores binárias com dicas em ordem sem nó principal
Árvore binária de pistas de pré-encomenda e árvore binária de pistas de pré-encomenda
Encontre o sucessor do nó na árvore binária de dicas de pré-encomenda
Se sobrar um filho, ele será seu sucessor
Se não houver filho esquerdo, mas houver filho direito, o segundo filho será o sucessor.
Caso contrário, o domínio da cadeia direita aponta para o sucessor
Encontrando o sucessor de um nó em uma árvore binária usando pistas de pós-ordem
Se x é a raiz de uma árvore binária, então o sucessor está vazio
Se x for o filho direito de ambos os pais, ou o filho esquerdo de ambos os pais e os pais não tiverem descendentes, então os descendentes serão seus pais.
Se x for o filho esquerdo do pai, e o pai tiver um filho direito, o sucessor será o primeiro nó listado na travessia em ordem decrescente na subárvore direita do pai.
Aplicações de árvores e árvores binárias
Árvores de Huffman e codificação de Huffman
definição
Comprimento do caminho ponderado: O produto do comprimento do caminho (número de arestas passadas) da raiz da árvore até qualquer nó e o peso do nó
O comprimento do caminho ponderado da árvore: a soma dos comprimentos do caminho ponderado de todos os nós folhas da árvore
Árvore Huffman: Entre as árvores binárias contendo n nós folha ponderados, a árvore binária com o menor comprimento de caminho ponderado (WPL) também é chamada de árvore binária ideal.
A estrutura da árvore de Huffman
Processo de construção
Dados n nós com pesos w1, w2,...,wn, o algoritmo para construir uma árvore de Huffman é descrito a seguir:
1) Trate esses n nós como n árvores binárias contendo apenas um nó para formar uma floresta F.
2) Construa um novo nó, selecione as duas árvores com os menores pesos do nó raiz de F como as subárvores esquerda e direita do novo nó e defina os pesos do novo nó para as raízes das subárvores esquerda e direita. dos pesos dos nós.
3) Exclua as duas árvores recém-selecionadas de F e adicione as árvores recém-obtidas a F.
4) Repita os passos 2) e 3) até que reste apenas uma árvore em F.
Características
1) Cada nó inicial eventualmente se torna um nó folha e, quanto menor o peso, maior o comprimento do caminho do nó ao nó raiz.
2) Um total de n-1 novos nós (nós de ramificação dupla) são criados durante o processo de construção, portanto o número total de nós da árvore Huffman é 2n-1.
3) Cada construção seleciona 2 árvores como filhas do novo nó, portanto não existe nenhum nó com grau 1 na árvore de Huffman.
Codificação de Huffman
codificação de comprimento variável
Caracteres diferentes são representados por bits binários de comprimento desigual; caracteres de baixa frequência recebem códigos mais longos e caracteres de alta frequência recebem códigos mais curtos.
codificação de prefixo
Nenhuma codificação é um prefixo de outra, então a decodificação é muito simples
A codificação Huffman é uma codificação de compressão de dados projetada usando comprimento variável e codificação de prefixo.
Árvore Huffman→codificação Huffman
1) Trate cada caractere que aparece como um nó independente, seu peso é igual à frequência de ocorrência (número de vezes), e construa a árvore de Huffman correspondente
2) Interpretar a codificação de um caractere como uma sequência de marcadores de borda no caminho da raiz até o caractere, onde um marcador de borda 0 significa "virar para o filho esquerdo" e uma marca de borda 1 significa "virar para o filho esquerdo"; criança certa"
E pesquise a coleção
Ideia básica
Normalmente, a representação pai de uma árvore (floresta) é usada como estrutura de armazenamento do conjunto union-find, e cada subconjunto é representado por uma árvore. Todas as árvores que representam subconjuntos formam uma floresta que representa todo o conjunto e são armazenadas na matriz de representação pai. Normalmente, o subscrito do elemento da matriz é usado para representar o nome do elemento, e o subscrito do nó raiz é usado para representar o nome da subcoleção. O nó pai do nó raiz é um número negativo.
operar
1) Inicial (S): inicializa cada elemento do conjunto s em um subconjunto com apenas um único elemento.
2) Union(S, Root1, Root2): Mescla o subconjunto Root2 no conjunto S no subconjunto Root1. Exigir Root1 e Root2 são disjuntos, caso contrário a mesclagem não será realizada.
3) Find(S,x): Encontre o subconjunto onde o único elemento x está localizado no conjunto s e retorne o nó raiz do subconjunto.
árvore, floresta
estrutura de armazenamento de árvore
representação dos pais
Um conjunto de espaços contínuos é usado para armazenar nós ao mesmo tempo, um pseudoponteiro é adicionado a cada nó para indicar a localização dos pais;
Você pode obter rapidamente os nós pais de um nó, mas precisa percorrer a matriz para encontrar os filhos do nó.
representação infantil
Conecte os nós filhos de cada nó com uma única lista vinculada, n nós correspondem a n listas vinculadas
Encontrar filhos é simples, mas encontrar pais requer percorrer n listas vinculadas
Representação de irmão filho (representação de árvore binária)
Usando uma lista vinculada binária como estrutura de armazenamento da árvore
Nó
valor do nó
Ponteiro para o primeiro filho do nó
Ponteiro para o próximo nó irmão do nó
É fácil encontrar filhos, mas é mais difícil encontrar nós pais (o ponteiro pai pode ser adicionado)
Conversão de árvores, florestas e árvores binárias
árvore ↔ árvore binária
Usando uma lista vinculada binária como meio, existe uma árvore binária única correspondente a cada árvore (e vice-versa)
Regra de conversão: "Filho esquerdo, irmão direito"
Sequência de travessia da primeira raiz: ABEFCDG
Sequência de passagem pós-raiz: EFBCGDA
Floresta ↔ Árvore binária
Semelhante à conversão acima, cada árvore é primeiro convertida em uma árvore binária e, em seguida, a raiz da enésima árvore é considerada a irmã direita da raiz da enésima árvore.
Travessia de pré-ordem da sequência: ABCDEFGHI
Sequência de passagem em ordem: BCDAFEHIG
Travessia de árvores e florestas
travessia de árvore
Percurso raiz primeiro
Primeiro visite o nó raiz e depois visite cada subárvore por vez
A sequência de travessia é igual à sequência de pré-ordem da árvore binária correspondente
travessia de raiz traseira
Primeiro visite cada subárvore e depois visite o nó raiz
A sequência de travessia é igual à sequência em ordem da árvore binária correspondente
Passagem de nível
Viajando pela floresta
passagem de pré-encomenda
Visite o nó raiz da primeira árvore da floresta
A pré-ordem percorre a floresta de subárvores do nó raiz na primeira árvore
Pré-encomende atravessar a floresta restante após remover a primeira árvore
travessia em ordem
A travessia em ordem atravessa a floresta de subárvores do nó raiz da primeira árvore da floresta.
Visite o nó raiz da primeira árvore
Percurso ordenado da floresta que consiste nas árvores restantes após a remoção da primeira árvore