Arvore Binaria
Em uma árvore binária, por definição, cada nó poderá ter até duas folhas, sendo que ela se compara com a abb (árvore binária de busca), apesar de não ter a propriedade da mesma ("na abb, existe uma regra na inserção").
A profundidade de um nó é a distância deste nó até a raiz. Um conjunto de nós com a mesma profundidade é denominado nível da árvore. A maior profundidade de um nó, é a altura da árvore.
Uma árvore "estritamente binária" é uma árvore na qual todo nó tem zero ou duas folhas. [1]
Existem autores, porém, que adotam essa definição para o termo quase completa, e utilizam o termo completa apenas para árvores em que todos os níveis têm o máximo número de elementos.
Em teoria dos grafos, uma árvore binária é definida como um grafo acíclico, conexo, dirigido e que cada nó não tem grau maior que 2. Assim sendo, só existe um caminho entre dois nós distintos.
E cada ramo da árvore é um vértice dirigido, sem peso, que parte do pai e vai o filho.
O algoritmo da inserção em árvores binárias são facilmente implementadas através de função recursiva.
Algoritmo da inserção em C:
void inserir(struct No **pRaiz, int numero){ if(*pRaiz == NULL){
* pRaiz = (struct No *) malloc(sizeof(struct No)); (*pRaiz)→pEsquerda = NULL; (*pRaiz)→pDireita = NULL; (*pRaiz)→numero = numero; }else{ if(numero anterior.ObtemValor()) //Como o novo nó tem valor maior do que o do nó anterior, desce para a direita do nó anterior. anterior.filho_Dir = this.Inserir(filho, anterior.filho_Dir); else //Caso seja um nó já existente, sai do método. return null; } } else { //Insere o novo nó como folha. anterior = novo; } return anterior; }
Algoritmo da inserção em C#:
public class