Академический Документы
Профессиональный Документы
Культура Документы
rvore Binria
Observaes
A arvore foi feita atravs de encadeamento dinmico, tendo as estruturas com ponteiros;
Requisitos TAD
Definies, estruturas e declaraes necessrias;
Funo para iniciar uma rvore; Funo para Inserir um novo n; Funo para remover um n (considerando as trs situaes de excluso); Funo para pesquisar um n;
Estrutura (N da rvore)
typedef struct noarv {
struct noarv* esq; int info;
struct noarv*dir;
}tnoarv;
Funo Insere N
Verifica se a rvore possui algum n j inserido, se no, o primeiro n criado, caso j exista algum, o novo n entra em uma condio caso o valor seja maior que o valor do n existente este recebe o apontador da direita, caso seja menor este recebe o apontador da esquerda.
Funo Remove N
Faz-se uma varredura na lista (rvore) com o princpio: Se o valor que ser removido for menor que o n atual, faz recursividade esquerda, caso seja maior que o atual, faz recursividade a direita; Quando o n a ser removido for encontrado, verificamos se os ns filhos da esquerda e direita no so NULL, se no forem, buscamos o menor n a partir do n da direita.
Cdigo Remoo
} } } } }else{ aux = *raiz; // caso os n da direita e da esquerda, ou somente o da direita, precisamos apenas remover // o n atual e fazer ajustar os ponteiros if(arvore_vazia((*raiz)->esq)) // se o n da esquerda for vazio *raiz = (*raiz)->dir; // o n pai do atual, apontar para o filho da direita do n atual. vazio. else *raiz = (*raiz)->esq; // se o n da esquerda no for // o n pai do atual, apontar para o filho
Funo Pesquisa N
Faz uma pesquisa nos ns da rvore para achar o valor passado como parmetro, caso o valor exista na rvore, ela retorna o n que est o valor, caso no exista retorna NULL.
Alunos: Lucas, Guilherme, Roney. Estrutura de Dados. Professor: Luiz Fernando Mximo. Engenharia de Computao,
UNIVALI Itaja.