3
Estrutura de dados II Arvore Binaria Tipos de estruturas de dados utilizados para representar dados hierárquicos. É composta por registros chamados nós, que satisfazem algumas condições. Uma arvore é composta por um nó raiz e suas subarvores (esquerda e direita). Em uma árvore Binaria cada nó tem 0,1 ou 2 filhos. Dada a representação a seguir temos: *Sub-árvore de T * Profundidade da arvore = nível da arvore = 2 *Na árvore acima temos que: - 50 e pai de 30 e 90; -100 é descendente de 50; 20 e 40 são irmãos. Em C: Struct noArv{ Int info; Struct noArv *esq; Struct noArv *dir; } 50 30 90 20 40 100 Nós folhas = não tem Nó raiz = não tem pai. Nível 0 Nivel 1 Nivel 2

arvore_binaria

Embed Size (px)

DESCRIPTION

arvore_binaria

Citation preview

Estrutura de dados IIArvore BinariaTipos de estruturas de dados utilizados para representar dados hierrquicos. composta por registros chamados ns, que satisfazem algumas condies.Uma arvore composta por um n raiz e suas subarvores (esquerda e direita).N raiz = no tem pai.

Em uma rvore Binaria cada n tem 0,1 ou 2 filhos.Dada a representao a seguir temos:50

Nvel 0 10090204030

Ns folhas = no tem filhoNivel 1

Nivel 2

*Sub-rvore de T* Profundidade da arvore = nvel da arvore = 2*Na rvore acima temos que:- 50 e pai de 30 e 90;-100 descendente de 50;20 e 40 so irmos.Em C:Struct noArv{Int info;Struct noArv *esq;Struct noArv *dir;}Percorrendo rvore BinariaComo no se trata de uma estrutura linear, temos 3 maneiras de percorrer uma rvore binaria:- Pr-ordene: Raiz, sub rvore esquerda, sub arvore direita;-Em ordem: Subarvore esquerda, raiz, subarvore direita;-Ps-ordem: subarvore esquerda, subarvore direita, raiz.

Pr Ordem: 50,30,20,40,90,100.Em ordem: 20,30,40,50,90,100.Ps-Ordem: 20,40,30,100,90,50.

Exerccios:01- Dada a arvore, mostre o que ser impresso em pr-ordem, em ordem e ps-ordem:M

V

E

KBZXPLFADYO

JC

2- Considere que folha um novo n a ser inserido na rvore e que raiz a raiz da rvore binaria, complete a funo de insero em rvores binarias.

Void inserir(struct noArv **raiz, struc noArv *folha){If(*raiz == NULL){...}else{...}}

OBS: Use recursividade.