

Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Programação
Tipologia: Notas de estudo
1 / 3
Esta página não é visível na pré-visualização
Não perca as partes importantes!


Em Ciência da Computação, uma árvore binária de busca (ou árvore binária de pesquisa ) é uma estrutura de dados de árvore binária baseada em nós, onde todos os nós da
subárvore esquerda possuem um valor numérico inferior ao nó raiz e todos os nós da subárvore direita possuem um valor superior ao nó raiz. O objetivo desta árvore é estruturar os
dados de forma flexível, permitindo pesquisa binária.
A operação de busca em uma árvore binária por um determinado valor, pode ser feita de maneira recursiva ou interativa. (fiz a abordagem recursiva).
A busca inicia-se no nó raiz, se o valor contido na raiz não for o desejado, verificamos se o valor é maior ou menor que o nó raiz. Caso o valor seja menor que o nó raiz, a busca continua pelo seu filho menor, ou seja, pelo filho da esquerda, mas, caso o valor seja maior a busca continua pelo filho da direita, até que se encontre o valor desejado ou a busca chegue em um nó folha (valor não encontrado).
A inserção de um novo valor é praticamente uma busca na árvore pois, precisamos percorrer toda a árvore até chegarmos em um nó folha correspondente. Se o valor a ser inserido for maior que o raiz, seguimos pelo filho da direita, se for menor seguimos pelo filho da esquerda, até chegarmos em um nó que mantenha a ordenação da árvore.
A operação remoção começa a complicar um pouco. Temos 3 casos diferentes:
Para a exclusão de um nó folha, precisamos somente removê-lo da árvore.
Para a exclusão de um nó com 1 filho, o filho apenas sobe para a posição do pai.
Para a remoção de um nó com 2 filhos, temos duas maneiras diferentes de trabalhar:
Estas duas maneiras são apenas definições de projeto, possuem a mesma complexidade e tempo de busca.
No exemplo abaixo, para remover o 3 usando a definição do menor nó da sub-árvore à direita, pesquisamos pelo menor nó à partir do 6 que no caso será o 4.
Agora, usando a definição do maior nó da subárvore à esquerda, removeremos o 8, o resultado será o seguinte:
Apresentando alguns códigos, lembrando que ao final desta postagem você poderá fazer o download de um projeto que foi desenvolvido utilizando o Dev-C++, com a linguagem C.
Função Inserir em árvore binária:
Função minimo, retorna o nó com valor minímo: