Arvore Binaria
Universidade Federal de Mato Grosso
Docente curso de Ciência da Computação
Nesse trabalho veremos uma implementação de Árvore Binária de números inteiros em linguagem C.
Código descritivo implementado em linguagem C da estrutura de dados Árvore de busca Binária, de chaves inteiras. O código possui as funções:
Inserir nova chave na árvore;
Imprimir árvore;
Sair;
O código tem o tratamento no caso de inserção de duas chaves iguais, passivo de modificação.
//Inclusão das bibliotecas utilizadas na linguagem C:
#include"stdio.h"
#include"stdlib.h"
//Estrutura do tipo árvore typedef struct arvore{ int chave; struct arvore *direita; struct arvore *esquerda;
}arvore;
//Função de alocação da Árvore arvore *aloca(){ arvore *novo=(arvore*)calloc(1, sizeof(arvore)); printf("\nDigite o elemento:\n"); scanf("%d", &novo->chave); return novo;
}
Função de inserção dos elementos na arvore arvore *insere( arvore* A, arvore *novo){ if(A->chave==novo->chave){ printf("\nA chave já existe!\n"); return A; } if(A==NULL){ return novo; }else{ if(novo->chave>A->chave){ if(A->direita==NULL){ A->direita=novo; }else{ A->direita=insere(A->direita, novo); } } if(novo->chavechave){ if(A->esquerda==NULL){ A->esquerda=novo; }else{ A->esquerda=insere(A->esquerda, novo); } } } return A;
}
//Função de inserção de elementos void impressao( arvore *A, int nivel){ int i; if(A!=NULL){ impressao(A->esquerda, nivel+1); for(i=0;ichave); impressao(A->direita, nivel+1); }
}
//Função principal, por onde as outras funções são chamadas int main(){ int opcao; int nivel=0, ch; arvore *A, *novo; A=(arvore*)malloc(sizeof(arvore));
// Case de opções para o usuário do{ printf("\nMenu:\n\n1-Inserir um elemento na árvore;\n2-Imprimir