Busca em profuncidade em c
Por: Raphael Abreu • 7/6/2015 • Trabalho acadêmico • 262 Palavras (2 Páginas) • 190 Visualizações
#include <stdio.h>
#include <stdlib.h>
/* Aluno; RAPHAEL ABREU /*
typedef struct no {
int valor; // valor do mo
struct no *e; // prox a esquerda
struct no *d; // prox a direita
}arvore;
arvore *raiz;
arvore *nova;
arvore *novo_no();
/* cria novo no da arvore */
arvore * novo_no()
{
nova=(arvore *)malloc(sizeof(arvore));
nova->e = NULL;
nova->d = NULL;
}
/* Função de BUSCA EM PROFUNCIDADE RECURSIVA */
void busca(arvore* no)
{
if (no == NULL) return; // critério de parada
busca(no->e); // recursivamente até o ultimo da esquerda
printf("->%d", no->valor);
// após esgotar as possiblidades da esquerda
busca(no->d);// recursivamente até o ultimo da direita
}
void main()
{
/* Fazendo a árvore binária na gambiarra */
raiz = novo_no(); // inicia no
raiz->valor = 10; // atribui valor
raiz->e = novo_no();
raiz->e->valor = 20;
raiz->d = novo_no();
raiz->d->valor = 30;
raiz->e->e = novo_no();
raiz->e->e->valor = 70;
raiz->e->d = novo_no();
raiz->e->d->valor = 80;
raiz->e->d->d = novo_no();
raiz->e->d->d->valor = 60;
raiz->e->e->e = novo_no();
raiz->e->e->e->valor = 50;
raiz->e->e->d = novo_no();
raiz->e->e->d->valor = 40;
raiz->e->e->d->e = novo_no();
raiz->e->e->d->e-> valor = 25;
busca(raiz);
...