Você está na página 1de 6

Criado por Julio Cesar de Andrade Vieira Lopes jcalop@terra.com.

br

1 - rvores 1.1 - Definies Uma rvore um grafo acclico com um n especial, denominado raiz da arvore. Um grafo conexo acclico sem nenhum n designado raiz chamado de rvore sem raiz ou rvore livre. Uma rvore tambm pode ser definida de maneira recorrente. Um nico n uma rvore(com esse n como raiz). Se T1, T2, ..., Tt, so arvores disjuntas com razes r1, r2, ..., rt, o grafo formado colocando-se um novo no r ligado, por um nico arco, a cada um dos ns r1, r2, ..., rt, uma rvore com raiz r. Os ns r1, r2, ..., rt, so os filhos de r e r pai de r1, r2, ..., rt.
Definio Recorrente
r

r1 T1

r2

T2

Como uma rvore um grafo conexo, existe um caminho da raiz para qualquer outro n na rvore; como a rvore acclica, esse caminho nico. - Profundidade/Altura/Nvel: A profundidade de um n em uma rvore o comprimento do caminho da raiz ao n; a raiz tem profundidade 0. - Profundidade de uma rvore: A profundidade(altura) de uma rvore a maior profundidade dos ns da rvore; em outras palavras, o comprimento do caminho mais comprido da raiz at um dos ns. - Folha: Um n sem filhos chamado folha da rvore; - N Interno: Todos os ns que no so folhas, so ns internos. - Floresta: Uma floresta um grafo acclico(no necessariamente conexo); logo, uma floresta uma coleo de rvores disjuntas.

Criado por Julio Cesar de Andrade Vieira Lopes jcalop@terra.com.br

1.2 Percursos
Percursos em uma rvore
A

- Pr-ordem: ABDECF - Ordem Simtrica: DBEAFC - Ps-ordem: DEBFCA

Percorrer uma rvore pode ser feito de 3 maneiras diferentes, cada uma dessas maneiras tem objetivos e resultados diferentes. 1.2.1 Percurso em Pr-ordem percurso(rvore T) Se vazia(T) retorna; escreva(r); percurso(Te); percurso(Td); 1.2.2 Percurso em Ordem Simtrica percurso(rvore T) Se vazia(T) retorna; percurso(Te); escreva(r); percurso(Td); 1.2.3 Percurso em Ps-ordem percurso(rvore T) Se vazia(T) retorna; percurso(Te); percurso(Td); escreva(r); Nota: Um algoritmo para descobrir a altura de um n, deve ser realizar um percurso em ps-ordem, pois apenas ele nos diz qual a altura das sub-rvores direita e esquerda para depois calcular a altura do n da raiz.

Criado por Julio Cesar de Andrade Vieira Lopes jcalop@terra.com.br

Problema: Dados 2 percursos quaisquer possvel montar a rvore original ? Pr-ordem: A, B, D, H, I, K, L, M, E, C, F, J, G Ordem Simtrica: H, D, K, I, M, L, B, E, A, F, J, C, G Ps-ordem: H, K, M, L, I, D, E, B, J, F, G, C, A No possvel montar a rvore original, pois para mont-la necessrio que o percurso simtrico seja dado, pois ele quem d a inflexo do percurso para esquerda ou direita. rvore Original
A

Ordem Simtrica: H, D, K, I, M, L, B, E, A, F, J, C, G
M

Esquerda

Direita

1.3 - Resultados sobre rvores - Toda rvore com n>1 ns, possui no mnimo 1(pois a rvore no infinita) e no mximo n-1 folhas. - O numero de arcos em uma rvore o numero de ns menos 1, ou seja, a = n-1.

Criado por Julio Cesar de Andrade Vieira Lopes jcalop@terra.com.br

2 - rvores Binrias Em uma rvore binria, cada n tem, no mximo, dois filhos. Em uma rvore binria, cada filho de um n chamado de filho esquerdo ou filho direito. - rvore Estritamente Binria: Uma rvore estritamente binria aquela onde cada n possui 0 ou 2 filhos. - rvore Binria Completa: Uma rvore binria completa aquela com a propriedade: Se v um n com alguma sub-rvore vazia, ento v se localiza no ltimo(maior) ou penltimo nvel da rvore. - rvore Binria Cheia: Uma rvore binria cheia aquela em que, se v um n com alguma das suas sub-rvores vazias, ento v se localiza no ltimo nvel. uma rvore que tem todos os ns internos com 2 filhos e onde todas as folhas esto na mesma profundidade.

- Estritamente Binria

- Completa

- Cheia - Completa - Estritamente Binria

Observao: - Toda rvore binria cheia completa e estritamente binria.

2.1 - Altura Mxima


Arvore Binria Com Altura Mxima
- 7 ns

Criado por Julio Cesar de Andrade Vieira Lopes jcalop@terra.com.br

2.2 - Altura Mnima


Arvore Binria Com Altura Mnima
- 6 ns

2.3 Relao entre o altura e o nmero de ns Se cada n capaz de ser ter dois filhos, ento em um determinado nvel, possvel ter no mximo 2 x na ns nesse nvel, onde na o nmero de ns mximo do nvel anterior. Ento o nmero de ns mximo uma de arvore de uma determinada altura(nvel), igual a 2 x na + na. Logo podemos esboar os seguintes algoritmos recorrentes:
Nmero Mximo de Ns Nvel(n) /* Retorna o nmero mximo de ns de um determinado nvel */ - Se n == 1: Retorna 1; /* Se o nvel 1, podemos ter no mximo 1 n */ - Retorna (2 * Nmero Mximo de Ns Nvel(n-1)); Nmero Mximo de Ns rvore(n) /* Retorna o nmero mximo de ns de uma rvore de altura h */ int nmero mximo de ns arvore; - Se n == 1: retorna 1; /* Se o nvel 1, podemos ter no mximo 1 n */ - nmero mximo de ns arvore = Nmero Mximo de Ns Arvore(n-1); - Retorna (2 * nmero mximo de ns arvore + nmero mximo de ns arvore);

Podemos a partir desses raciocnios elaborar os seguintes resultados:


N mximo de ns 1 3 7 15 2 - 1
n n Exponencial Logartmica h h

h: Altura 1 2 3 4 h

Calculando h em funo de n n = 2 - 1 2 = n + 1 log 2 = log(n+1) h = log(n+1);

Observao - Para obtermos estes resultados, consideramos a altura da raiz como sendo igual a 1;

Criado por Julio Cesar de Andrade Vieira Lopes jcalop@terra.com.br

Podemos concluir disto tudo, que para, por exemplo, buscar um elemento em uma rvore binria de busca que tenha n elementos organizados de forma a preservar a propriedade de altura mnima, executaremos o algoritmo log n vezes, que a altura da arvore at o n desejado.