SdevLab – Exemplo de Código | Árvore Binária em C/C++

Eae galera!

Segue neste post um código que mostra como utilizar uma outra estrutura de dados que é a árvore binária.

Árvore Binária em C/C++

Este tipo de estrutura utiliza termos como nó, folha e raiz para denominar seus elementos, que possuem uma estrutura parecida com a imagem abaixo:

Acredito ser o tipo de árvore mais utilizado na computação, utiliza muita recursividade e é usada principalmente em algoritmos de árvores de busca binária.

Segue então o código que além de povoar a árvore, soma todos os seus elementos:

#include
using namespace std;
struct treenode
{
    int info;
    treenode *left;
    treenode *right;
};
typedef treenode *treenodeptr;
void tInsere(treenodeptr &p, int x)
{
    if (p == NULL) // insere na raiz
    {
        p = new treenode;
        p->info = x;
        p->left = NULL;
        p->right = NULL;
    }
    else
    {
        if(x < p->info)//insere na subarvore esquerda
            tInsere(p->left, x);
        else
            tInsere(p->right, x);
    }
}
void emOrdem(treenodeptr arvore, int &x)
{
    if(arvore != NULL)
    {
        emOrdem(arvore->left,x);
        x = x + arvore->info;
        emOrdem(arvore->right,x);
    }
}
void soma(treenodeptr arvore)
{
    int x = 0;
    emOrdem(arvore, x);
    cout << "Somatório dos elementos da árvore: " << x << endl;
}
int main(){
    int x = 0;
    treenodeptr arvore = NULL;
    while (x != -1)
    {
        cout << "Digite elemento a ser inserido." << endl;
        cin >> x;
        if (x != -1)
            tInsere(arvore, x);
    }
    soma(arvore);
}

Até a próxima!
😉

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s