Árvore Binária Encadeada Exercício Considere uma árvore binária

Propaganda
Árvore Binária Encadeada
Exercício
Considere uma árvore binária encadeada, e desenvolva um algoritmo para
percorrer essa árvore em-ordem sem usar um algoritmo recursivo. A função de
inserção em uma árvore encadeada é dada a seguir.
void insere(int valor) {
struct no *atual, *anterior, *aux, *sucessor=NULL;
aux = new(struct no);
aux->suc = false;
aux->dado = valor;
aux->esq = NULL;
aux->dir = NULL;
if (raiz==NULL) {
raiz = aux;
return;
}
atual=raiz;
while (atual!=NULL) {
anterior=atual;
if (valor < atual->dado)
atual=atual->esq;
else {
if (atual->suc) {
sucessor = atual->dir;
atual->suc=false;
break;
}
atual=atual->dir;
}
}
if (valor < anterior->dado) {
aux->suc=true;
aux->dir=anterior;
anterior->esq=aux;
} else {
if (sucessor!=NULL)
aux->suc=true;
aux->dir=sucessor;
anterior->dir=aux;
}
}
Download