Qweqwe
Struct tiponodo
{
<tipo.dado> info; tiponodo *eloe, *elod; tiponodo *Pi; //opcional
};
NULL=RAIZ
ELOE | INFO | PAI | ELOD |
ELOE | INFO | PAI | ELOD |
NA MAIN tiponodo *raiz = NULL;
void criararvore (tiponodo *&raiz)
{
Raiz = NULL;
}
Bool alocaraiz (tiponodo*&raiz,<tipo.dado>valor)
{
raiz = new tiponodo; if(raiz==NULL) return false; raiz-> valor = valor; raiz-> eloe = NULL; raiz-> elod = NULL; raiz-> pai = NULL; return true;
}
Bool inserirfilhoesq (tiponodo*& raiz, <tipodado> valor, tiponodo *pai)
{
tiponodo *end.pai, *novo; end.pai = localizar(raiz, pai); if (end.pai == NULL ) return false; if(end.pai-> eloe != NULL) return false; novo = new tiponodo; if(novo == NULL) return false; novo-> info = valor; novo-> eloe = NULL; novo-> elod = NULL; novo-> pai = end =end.pai; end.pai-> eloe = novo; return true;
}
bool inserirfilhodir (tiponodo*& raiz, <tipodado> valor, tiponodo *pai)
{
tiponodo *end.pai, *novo; end.pai = localizar(raiz, pai); if (end.pai == NULL ) return false; if(end.pai-> elod != NULL) return false; novo = new tiponodo; if(novo == NULL) return false; novo-> info = valor; novo-> eloe = NULL; novo-> elod = NULL; novo-> pai = end =end.pai; end.pai-> elod = novo; return true;
}
Struct tiponodo *localizar (tiponodo *raiz, <tipo.dado> valor)
{
nodo *achou; acho if (end->info ==valor)return end; if(end->eloe !=NULL)
{
Achou =localizar (end->eloe,valor); If(achou!=NULL) return achou;
}
If (end->elod !=NULL)
{
Achou = localizar (end->elod,valor); If(achou!=NULL)return achou;
}
Return NULL;