1 / 26

ÁRVORES

ÁRVORES. Data object muito importante Estrutura organizada que representa relacionamento hierárquico Exemplos: ascendentes e descendentes Relacionamento em dois ramos ou multi-ramos. ÁRVORES (cont.). Definição: É um conjunto finito de um ou mais nós tal que:

avital
Download Presentation

ÁRVORES

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ÁRVORES • Data object muito importante • Estrutura organizada que representa • relacionamento hierárquico • Exemplos: ascendentes e descendentes • Relacionamento em dois ramos ou multi-ramos

  2. ÁRVORES (cont.) Definição: É um conjunto finito de um ou mais nós tal que: (a) existe um nó especial chamado de raiz (b) os nós restantes são particionados em n0 conjuntos disjuntos T1, ..., Tn onde cada um destes conjuntos são árvores. T1, ..., Tn são chamados de sub-árvores

  3. D HB BR TER COY BRU NUG ÁRVORES (cont.) Duas sub-árvores com raízes HB e BR A condição de conjuntos disjuntos de T1, ..., Tn não permite a conexão entre sub-árvores

  4. L L1L2L3L4 L5L6 L8L9 L10L11L12 L7 ÁRVORES (cont.) Quatro sub-árvores com raízes L1, L2, L3 e L4 Cada item é raiz de alguma sub-árvore. Por exemplo, L12 é uma raiz sem sub-árvores

  5. L L1L2L3L4 L5L6 L8L9 L10L11L12 L7 ÁRVORES (cont.) Nó = informação + ligações a outros ítens 13 nós

  6. L L1L2L3L4 L5L6 L8L9 L10L11L12 L7 ÁRVORES (cont.) Grau = número de sub-árvores de um nó L4 tem grau 3

  7. L L1L2L3L4 L5L6 L8L9 L10L11L12 L7 ÁRVORES (cont.) Folha = nó com grau 0 L5 a L12 (também nós terminais)

  8. A B C D E F G H I J M K L ÁRVORES (cont.) 1 2 3 4 Grau de uma árvore = grau máximo dos nós da árvore  3

  9. A 1 B C D 2 E F G H I J 3 M K L 4 ÁRVORES (cont.) Ancestrais de um nó = todos os nós no caminho raiz-nó  os ancestrais de M são A, D e H

  10. A 1 B C D 2 E F G H I J 3 M K L 4 ÁRVORES (cont.) Nível = raiz sempre no nível 1. Nó no nível l, filhas no nível l+1

  11. A 1 B C D 2 E F G H I J 3 M K L 4 ÁRVORES (cont.) Profundidade = nível máximo de qualquer nó na árvore  4

  12. A 1 B C D 2 E F G H I J 3 M K L 4 ÁRVORES (cont.) Floresta = n0 árvores disjuntas  se eliminar o nó A

  13. ÁRVORES BINÁRIAS • É uma estrutura muito importante • Qualquer nó pode ter no MÁXIMO • dois ramos (grau  2) • Distinção entre sub-árvore à esquerda e • sub-árvore à direita • Pode ter 0 (zero) nós • É um objeto bem diferente do objeto árvore

  14. ÁRVORES BINÁRIAS (cont.) Definição: Uma árvore binária é um conjunto finito de nós que ou é vazia ou consiste de uma raiz e duas árvores binárias disjuntas chamadas de sub-árvore esquerda e sub-árvoredireita Número máximo de nós num nível l = 2l-1, para l  1 Número máximo de nós com profundidade k = 2k - 1 OBS: às vezes alguns consideram nível de raiz como 0 (zero)

  15. ÁRVORES BINÁRIAS (cont.) • Processamento sistemático e ordenado de cada nó da • árvore apenas uma vez para obter uma seqüência • linear dos nós. • A seqüência consiste de: antecessor e sucessor • Existem três maneiras de percorrer uma árvore binária • Pre-Order (pré-ordem) • In-Order (ordem simétrica) • Post-Order (ordem final)

  16. D HB BR TER COY BRU NUG ÁRVORES BINÁRIAS (cont.) • Pre-Order: • Visita a raiz • Percorre a sub-árvore à esquerda • Percorre a sub-árvore à direita D - HB - BRU - TER - BR - COY - NUG

  17. ÁRVORES BINÁRIAS (cont.) Pre-Order ( T ) // T é uma árvore binária com três campos: // Lchild, Data, Rchild { if T  0 { print Data (T) Pre-Order ( Lchild (T) ) Pre-Order ( Rchild (T) ) } }

  18. D HB BR TER COY BRU NUG ÁRVORES BINÁRIAS (cont.) • In-Order: • Percorre a sub-árvore à esquerda • Visita a raiz • Percorre a sub-árvore à direita BRU - HB - TER - D - COY - BR - NUG

  19. ÁRVORES BINÁRIAS (cont.) In-Order ( T ) // T é uma árvore binária com três campos: // Lchild, Data, Rchild { if T  0 { In-Order ( Lchild (T) ) print Data (T) In-Order ( Rchild (T) ) } }

  20. D HB BR TER COY BRU NUG ÁRVORES BINÁRIAS (cont.) • Post-Order: • Percorre a sub-árvore à esquerda • Percorre a sub-árvore à direita • Visita a raiz BRU - TER - HB - COY - NUG - BR - D

  21. ÁRVORES BINÁRIAS (cont.) Post-Order ( T ) // T é uma árvore binária com três campos: // Lchild, Data, Rchild { if T  0 { Post-Order ( Lchild (T) ) Post-Order ( Rchild (T) ) print Data (T) } }

  22. ÁRVORES BINÁRIAS (cont.) Numa árvore binária com n nós, tem-se n+1 links para NULO Seria interessante aproveitar esses links • Perlis/Thornton - alteração da representação original •  COSTURA • LinkEsq - endereço do nó antecessor • LinkDir - endereço do nó sucessor • OBS: DEPENDE DA SEQÜÊNCIA LINEAR A SER UTILIZADA

  23. ÁRVORES BINÁRIAS (cont.) Determinar se o Link é VERDADEIRO ou é devido a COSTURA Informação correspondente tem que ser embutida

  24. ÁRVORES BINÁRIAS (cont.) Se LinkEsq  NULO, marcar VERDADEIRO Se LinkDir  NULO, marcar VERDADEIRO Se LinkEsq == NULO { marcar FALSO aponta para antecessor } Se LinkDir == NULO { marcar FALSO aponta para sucessor }

  25. ÁRVORES BINÁRIAS (cont.) A B C D E F G 1 1 1 1 1 1 0 0 0 0 0 0 0 0 In-Order: D - B - E - A - F - C - G

  26. ÁRVORES BINÁRIAS (cont.) Tratamento especial para SEGUNDO NÓ PRIMEIRO NÓ Sem sucessor Sem antecessor APONTA PRA RAIZ OU NÓ CABEÇA

More Related