Você está na página 1de 3

1

Pontifcia Universidade Catlica de Minas Gerais


Plano de Ensino
(2 semestre de 2011)

Curso: 155 - Engenharia de Computao Disciplina: 36588 - ALGORITMOS E ESTRUTURAS DE DADOS II Perodo: 2 Turno: manh Carga Horria: TOTAL ( 64 horas ) TERICA ( 64 horas )

Kelvin F. Ribeiro

rvores e Recurso

Belo Horizonte, 25 de Novembro de 2011

Funo que insere elementos recursivamente em uma determina rvore:

void inserir (Arv *t, int dado) { int ok; // se t aponta para null, a insero na raiz... if (*t == NULL) { *t = (tnoarv *) malloc (sizeof(tnoarv)); if (*t == NULL) return; (*t)->esq = NULL; (*t)->dir = NULL; (*t)->info = dado; } // Se o dado a ser inserido for menor que o n atual, recursividade esquerda if (dado < (*t)->info) { inserir(&((*t)->esq), dado); } else { // Se o dado a ser inserido for menor que o n atual, recursividade direita if (dado > (*t)->info) { inserir (&((*t)->dir), dado); } } }

Funo que calcula a altura de uma determinada rvore:

int altura (Arv *r) { if (r == NULL) return -1; // altura de rvore vazia -1. else { int he = altura (r->esq); int hd = altura (r->dir); if (he < hd) return hd + 1; else return he + 1; } }

Você também pode gostar