https://github.com/andreirech/impbinarytree
🌳 Implementation of a binary tree
https://github.com/andreirech/impbinarytree
Last synced: 7 months ago
JSON representation
🌳 Implementation of a binary tree
- Host: GitHub
- URL: https://github.com/andreirech/impbinarytree
- Owner: AndreiRech
- Created: 2023-11-20T22:28:16.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-11-26T21:04:10.000Z (over 2 years ago)
- Last Synced: 2024-12-27T12:13:17.723Z (over 1 year ago)
- Language: Java
- Homepage:
- Size: 25.4 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
1. Implementação de métodos em Árvore Binária de Pesquisa
Tendo em vista a implementação disponível, acrescente na classe BinarySearchTree os métodos abaixos seguindo as instruções dos comentários javadoc:
/**
* Método minNode()
* método que busca o menor valor existente na árvore
* @param defina a necessidade de parâmetros de acordo com a sua implementação
* @return valor do menor nodo da árvore
*/
public int minNode() {}
/**
* Método maxNode()
* método que busca o maior valor existente na árvore
* @param defina a necessidade de parâmetros de acordo com a sua implementação
* @return valor do maior nodo da árvore
*/
public int maxNode() {}
/**
* Método countLeaves()
* método que conta os nodos folha de uma árvore binária
* @param defina a necessidade de parâmetros de acordo com a sua implementação
* @return valor inteiro correspondente a quantidade de nodos folha
*/
public int countLeaves() {}
/**
* Método sumBetween()
* método soma os valores de uma sequência de nodos (não incluindo os valores dos nodos de início e fim)
* @param start valor que corresponde ao nodo de início
* @param end valor que corresponde ao nodo de fim
* @param defina outros caso haja necessidade na sua implementação
* @return valor inteiro correspondente a quantidade de nodos folha
*/
public int countBetween(int start, int end) {}
===============================
2. Implementação de balanceamento de Árvore Binária de Pesquisa
Escolher uma das árvores possíveis para serem estudadas são, obrigatoriamente: Árvores AVL ou Árvores rubro-negras (Red-Black Tree).
Após o entendimento do funcionamento da árvore, é preciso implementá-la. A implementação pode ser uma adaptação de uma implementação pronta, mas deve seguir o padrão trabalhado em aula, isto é, deve ser implementada uma árvore binária de pesquisa balanceada para armazenar números inteiros. O TAD também deve seguir o padrão de TAD visto em aula para árvores binárias, sendo obrigatório que a classe da árvore tenha os seguintes métodos:
Adicionar elementos na árvore: void add(obj);
Retornar o pai de um elemento: obj getParent(obj);
Limpar o conteúdo da árvore: void clear();
Verificar se um elemento está armazenado na árvore ou não: boolean contains(obj);
Verificar qual é a altura da árvore: int height();
Verificar quantos elementos tem na árvore: int size();
Verificar se a árvore está vazia ou não: boolean isEmpty();
Retornar os elementos da árvore em uma lista usando diferentes caminhamentos (métodos preOrder(), inOrder(), posOrder());
Apresentar a visualização da árvore usando a classe TreeFormatter.
Para a implementação dos métodos acima será preciso incluir outros métodos necessários para o correto funcionamento da árvore e para que ela fique balanceada. Após a implementação de todos os métodos, é obrigatório analisar e incluir como comentário a notação O para os métodos add, contains, height e clone.
Testar a árvore de pesquisa implementada de acordo com as instruções fornecidas
Além da implementação da classe da árvore, é preciso implementar um método main que instancie a árvore implementada e chame os seus métodos para verificar o seu correto funcionamento. Para isto, é obrigatório ter os seguintes comandos no método main:
Instanciar a árvore implementada;
Incluir os números 1, 2, 3, 4, 5, 6, 7, 8, 9, nesta ordem, na árvore;
Apresentar a visualizacão da árvore;
Apresentar a altura da árvore;
Limpar o conteúdo da árvore;
Incluir os números 9, 8, 7, 6, 5, 4, 3, 2, 1, nesta ordem, na árvore;
Apresentar o conteúdo da árvore usando um caminhamento central;