aula 310

Como descobrir / imprimir o nível de um nó na Árvore Binária?

Respondendo a uma dúvida, vamos aprender nesta aula como descobrir e imprimir na tela o nível de um nó em uma Árvore Binária de Busca.

Playlist Árvore Binária de Busca

Playlist Árvore Balanceada AVL

Playlist Curso de Programação C

Será utilizado nesta aula o código que testamos na aula anterior, apenas acrescentando mais um procedimento de impressão.

A ideia para descobrir o nível de cada nó na árvore é bastante simples. A raiz da nossa árvore, por definição, está no nível zero, a partir daí, cada chamada feita para a subárvore esquerda ou direita basta incrementar uma unidade neste valor. Assim teremos em cada nó o seu nível correspondente.

Imagine que a árvore tenha apenas 3 nós, a raiz, um filho à esquerda e outro filho à direita. A raiz da árvore está no nível zero e cada um dos seus dois filhos está no nível um. Se cada um dos filhos também possuísse dois filhos, esses quatro filhos estariam no nível dois, e assim por diante.

Essa ideia pode ser facilmente implementada acrescentando mais um parâmetro ao procedimento de impressão. Agora, será enviado o ponteiro para a raiz e o nível em que a raiz se encontra. Dentro do procedimento, cada nova chamada recursiva irá incrementar 1 a este valor, afinal estamos descendo, nos aprofundando na árvore, avançando para o próximo nível.

Procedimento para imprimir o valor de cada nó juntamente com seu nível na Árvore Binária de Busca.

void imprimir_versao_2(NoArv *raiz, int nivel){ // 25 30 50 100
    if(raiz){
        imprimir_versao_2(raiz->esquerda, nivel + 1);
        printf("%d(%d) ", raiz->valor, nivel);
        imprimir_versao_2(raiz->direita, nivel + 1);
    }
}

Deixe um comentário

três × 2 =

Wagner Gaspar

Capixaba de São Gabriel da Palha, Espírito Santo. Bacharel em Ciência da Computação pela Universidade Federal do Amazonas e mestre em informática pela Universidade Federal do Espírito Santo.