Você está na página 1de 2

Centro de Cincias Exatas e Sociais Aplicadas

Curso de Cincia da Computao Estrutura de Dados II Professor Andr Castro Exerccios


#include <stdio.h> #include <conio.h> #include <malloc.h>

struct noarv { int info; noarv *esq, *dir; };

void inicia(struct noarv *a) { *a = NULL; }

void imprime(struct noarv *a, int n) { int i; if (a != NULL) { imprime(a->dir, n+5); for (i=0; i<n; i++) { printf(" "); } printf("%d\n", a->info); imprime(a->esq, n+5); } }

void mostra(struct noarv *a) { imprime(a, 5); printf("--------------------\n"); getch(); }

void termina(struct noarv *a) { if (*a != NULL) { termina(&(*a)->esq); termina(&(*a)->dir); free(a); *a = NULL; } }

1/2

Centro de Cincias Exatas e Sociais Aplicadas

Curso de Cincia da Computao Estrutura de Dados II Professor Andr Castro


int main() { struct noarv *arv; inicia(&arv);

mostra(arv); insere(&arv, 10); mostra(arv); insere(&arv, 5); mostra(arv); insere(&arv, 15); mostra(arv); insere(&arv, 7); mostra(arv); insere(&arv, 12); mostra(arv); insere(&arv, 3); mostra(arv); insere(&arv, 18); mostra(arv); termina(&arv); mostra(arv); return 0; }

01) Faa uma rotina para inserir um elemento em uma rvore binria de busca. Utilize o cabealho abaixo. void insere(struct noarv *a, int x); 02) Faa uma outra rotina para mostrar uma rvore para que a sada seja na notao textual, ou seja, se a rvore vazia, ela representada por <>, seno representada por < raiz sae sad >. 03) Faa uma rotina para buscar um elemento na rvore. A rotina retornar um ponteiro para o elemento se ele estiver na rvore, seno retornar NULL. Utilize o cabealho abaixo. struct noarv *busca(struct noarv *a, int x);

04) Modifique a rotina de inserir um elemento na rvore para que, caso o elemento j exista, incremente a freqncia com que esse elemento apareceu na rvore. Para isso, altere o tipo TNo e a rotina imprime.

2/2