Boa noite, eu estou tentando implementar uma função que imprima uma árvore como ela deveria ser, com o pai acima e a direita do menor filho e acima e a esquerda do maior filho.
Já tenho duas funcões que me permitem imprimir por nível, porém estou tentando adaptá-las para a impressão correta. Exemplo:
árvore: 5,4,3,2,1;
Impressão:
5
3 4
1 2
O código para o print é este:
void ---ivel(node_t* raiz, int level)
{
if (raiz == NULL){
for(int i = 0 ; i < 3 ; i++){
printf("\t");
return;}
}
if (level == 1) {
for (int i=0; i<altura(raiz); i++)
printf("\t");
simpleprint(raiz);
} else if (level > 1)
{
---ivel(raiz->left, level-1);
---ivel(raiz->right, level-1);
}
}
void printarordem(node_t *raiz)
{
int h = altura(raiz);
int i;
for (i=1; i<=h; i++)
{
printf("\t");
---ivel(raiz, i);
printf("\n");
}
}
Se alguém souber como resolver este ou sugerir outra implementação, fico super agradecido!