[Estrutura de dados e algoritmo JS] árvore do conhecimento

índice

1. As características da árvore na vida

2. Simulação em uma estrutura de árvore

Três, a definição da árvore

Quatro, a terminologia básica da árvore

Cinco, a representação da estrutura da árvore

Seis, árvore binária

1. Definição de árvore binária

2. Atributos da árvore binária

3. Cinco formas de árvores binárias

4. A forma especial da árvore binária

5. A estrutura de armazenamento da árvore binária

5.1 Estrutura de armazenamento sequencial

5.2 Estrutura de armazenamento da corrente


1. As características da árvore na vida

A árvore da vida é assim:
árvore

  • Geralmente tem apenas uma raiz e o tronco da árvore está conectado a ela .
  • Existem vários ramos no tronco , que podem ser divididos em vários pequenos ramos .
  • Existem várias folhas no final da árvore .

2. Simulação em uma estrutura de árvore

Inverta a árvore acima, cada ramo está conectado a um nó, e cada folha é outro nó, que é a estrutura em árvore em nossa estrutura de dados.

Semelhante à estrutura em árvore são a árvore genealógica, a estrutura organizacional da empresa, a estrutura de conhecimento e assim por diante.

Estrutura abstrata

Três, a definição da árvore

Árvore é um conjunto finito de n (n ≥ 0) nós. É uma árvore vazia (n = 0) ou uma árvore não vazia, para uma árvore não vazia T;

(1) Existe um e apenas um nó chamado raiz.

(2) Os outros nós além do nó raiz podem ser divididos em m (m ≥ 0) conjuntos finitos disjuntos T1, T2, ..., Tm, cada um dos quais é uma árvore, e é chamado de Subárvore Enraizada (Subárvore)

A definição da estrutura da árvore é uma definição recursiva , ou seja, a definição da árvore é útil na definição da árvore.

 

Quatro, a terminologia básica da árvore

A representação de nós e nós aqui não é contestada, ambos são aceitáveis.

(1) : uma unidade independente na árvore, incluindo um elemento de dados e vários ramos apontando para nós filhos. Nós A ~ K na imagem;

(2) Grau do(Grau) : O número de subárvores pertencentes ao nó é chamado de grau do nó. Por exemplo, o grau de A é 4, o grau de E é 1 e o grau de D é 0;

(3) o grau da árvore : o ponto máximo da árvore é o grau de cada nó dentro da árvore. O grau da árvore na figura é 4;

(4) Folha : Um nó com grau 0 é denominado folha ou nó terminal. Por exemplo, F, J, K, H, C, D, I são todas folhas;

(5) Nó pai ou nó pai (pai) : Se um nó contém um nó filho, esse nó é chamado de nó pai de seu nó filho, conforme mostrado na Figura B é o nó pai do ponto F, G, H;

(6) Nó filho ou nó filho (filho) : o nó raiz da subárvore contida em um nó é chamado de nó filho do nó, H é o nó filho de B e F é o nó filho de B ;

(7) Irmãos : os nós com o mesmo nó pai são chamados de nós irmãos, e F e G são nós irmãos;

(8) O nível do nó (Nível) : a partir da definição da raiz, a raiz é o primeiro nível e os subnós da raiz são o segundo nível, e assim por diante; na figura acima, A está localizado no primeiro nível e K está localizado no quarto andar;

(9) A altura ou profundidade da árvore (profundidade) : o nível máximo de nós na árvore; a profundidade da árvore na figura acima é 4;

(10) Nós não terminais ou nós ramificados : nós cujo grau não é 0;

(11) Nó primo : nós com pais no mesmo nível são primos entre si;

(12) Ancestrais de um nó : da raiz a todos os nós na ramificação do nó;

(13) Descendentes : qualquer nó na subárvore com raiz em um determinado nó é chamado de descendente desse nó;

(14) Floresta: Uma coleção de m (m> = 0) árvores disjuntas é chamada de floresta.

Cinco, a representação da estrutura da árvore

  • Quando o nó de relacionamento pai-filho da árvore é simulado como um nó de conexão de lista vinculada, ele pode ter a seguinte estrutura

Mas se pensarmos bem, se nos candidatarmos a indicadores de vagas com esse tipo de estupidez, vai ficar muito complicado, quer queiramos candidatar-se a um, dois ou mais, no final, pode não atender realmente às nossas necessidades.

Portanto, esta forma de construir nossa estrutura de árvore não é muito boa.

  • Notação filho-irmão

Ao definir um nó, você só precisa incluir três atributos

  • this.key : O conteúdo dos dados armazenados. Você também pode armazenar [chave, valor] na forma de pares de valores-chave
  • this.left : usado para apontar para a subárvore esquerda.
  • this.sibling : usado para apontar para um nó irmão.

Não é difícil descobrir que, quando giramos a estrutura representada pela representação filho-irmão em 45 °, chegamos a uma árvore binária.

Todas as árvores podem ser simuladas como árvores binárias nesta forma

Seis, árvore binária

1. Definição de árvore binária

A árvore binária é uma coleção de n (n ≥ 0) nós. É uma árvore vazia (n = 0) ou uma árvore não vazia, para uma árvore não vazia T;

(1) Existe um e apenas um nó chamado raiz.

(2) Os outros nós além do nó raiz podem ser divididos em dois conjuntos finitos disjuntos T1 e T2, que são chamados de subárvore esquerda e subárvore direita de T respectivamente, e T1 e T2 são ambas árvores binárias.

2. Atributos da árvore binária

(1) Em uma árvore binária não vazia, o número total de nós no i-ésimo nível não excede   , i> = 1;

(2) Uma árvore binária com profundidade h tem no máximo   um nó (h> = 1), e pelo menos h nós;

(3) Para qualquer árvore binária, se o número de nós folha for N0, e o número total de nós com grau 2 for N2, então N0 = N2 + 1;

  • Árvore binária completa : uma árvore binária com profundidade he um nó.

        O número de nós em cada camada é o número máximo de nós, ou seja, o número de nós em cada camada i tem o valor máximo

 

  • Árvore Binária Completa : Uma árvore binária com n nós com profundidade k, se e somente se cada nó corresponder a um nó numerado de 1 an em uma árvore binária completa com profundidade k. Chame-a de árvore binária completa.

          (1) Os nós de folha só podem aparecer nos dois níveis maiores.

          (2) Para qualquer nó, se o nível máximo de descendentes sob seu ramo direito for l, o nível máximo de descendentes sob seu ramo esquerdo deve ser l ou l + 1,

(4) A profundidade de uma árvore binária completa com n nós é  (Nota: [] significa arredondamento para baixo)

(5) Se cada nó de uma árvore binária completa com N nós for armazenado de maneira sequencial, a relação entre os nós é a seguinte:

  •            Se I for o número do nó, se I> 1, então o número de seu nó pai é I / 2;
  •            Se 2 * I <= N, o número de seu filho esquerdo (ou seja, o nó raiz da subárvore esquerda) é 2 * I; se 2 * I> N, não há filho esquerdo;
  •            Se 2 * I + 1 <= N, então o número do nó do filho certo é 2 * I + 1; se 2 * I + 1> N, não há filho certo.

(6) Dados N nós, h (N) tipos de árvores binárias diferentes podem ser formados. h (N) é o enésimo termo do número de Cattleya. h (n) = C (2 * n, n) / (n + 1).

(7) Existem i pontos de ramificação, I é o comprimento total da estrada de todos os pontos de ramificação, J é o comprimento total da estrada das folhas J = I + 2i

3. Cinco formas de árvores binárias

4. A forma especial da árvore binária

5. A estrutura de armazenamento da árvore binária

5.1 Estrutura de armazenamento sequencial

Para uma árvore binária completa, armazenamos os elementos na forma de um array e obtemos o seguinte array

UMA 

B

C

D

E

F

Número de série

1

2

3

4

5

6

Mas descobrimos que nem todas as árvores binárias podem armazenar os elementos em ordem como uma árvore binária completa, como a seguinte árvore binária

 

UMA 

B

C

^

D

E

^

^

^

^

F

Número de série

1

2

3

4

5

6

7

8

9

10

11

Neste caso, causará muito desperdício de espaço e é mais adequado adotar a seguinte estrutura de armazenamento em cadeia

5.2 Estrutura de armazenamento da corrente

A partir da definição da árvore binária, pode-se ver que o nó da árvore binária é composto por um elemento de dados e duas ramificações apontando para os nós esquerdo e direito, respectivamente, de modo que os nós na lista encadeada que representam a árvore binária devem conter pelo menos três campos.

  • data: campo de dados.
  • lchild: domínio do ponteiro esquerdo.
  • rchild: Campo do ponteiro direito.

Às vezes, para encontrar o pai de um nó, podemos adicionar um campo de ponteiro ao nó pai . A estrutura de armazenamento da árvore binária derivada dessas duas estruturas de nós é chamada de lista vinculada binária e lista vinculada de três pontas, respectivamente.

 

Acho que você gosta

Origin blog.csdn.net/weixin_42339197/article/details/99671691
Recomendado
Clasificación