Skip to content

PedroTricossi/alg-III-trab2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

alg-III-trab2

Autores

Este trabalho for realizado inteiramente por Pedro Tricossi (GRR20203895) e Thomas Todt (GRR20203910)

Implementação

Para ambas as árvores do trabalho foram utilizadas Árvores Binárias de Busca (BST) e árvores binárias. Sendo a árvore A uma BST e também a árvore principal e a Arvore B uma árvore binária, a árvore que serve como chave para a indexação da primeira.

Para a implementação deste algoritmo foram utilizadas 3 funções principais, sendo elas inclusão, exclusão e busca. Para mostrar o resultados das operações foi implementada também uma função de impressão de árvore.

Inclusão

A função de inserção recebe dois parametros, sendo um deles a árvore A, e o segundo um ponteiro apontando para uma string que virá a se tornar a árvore B e chave da árvore A.

O funcionamento da função é baseado na BST apresentadas em sala, e seguindo sempre as políticas de árvore binária. O diferencial para essa versão da árvore é que ao invés de passar como argumento para criar o nó um inteiro é passado um struct (criada pela função montaarvore_B)

Busca

A função de busca recebe também dois parametros, sendo um deles a árvore A e o segundo a soma da árvore fornecida via stdin.

Para buscar um nó dentro da árvore são utilizadas as mesmas politicas de uma BST padrão, com a unica diferença sendo que a comparação é feita entre um inteiro (fornecido como parametro da função) e o valor de indexacao da sub-arvore que esta no nodo passado, dado pela soma dos valores nos nodos da árvore B.

Exclusão

A função de exclusão também recebe dois parametros, sendo um deles a árvore A, e o segundo o nó que será excluido da árvore (esse nó é dado a função utilizando a função de busca).

Para realizar a exclusão de um nó são utilizadas as mesmas políticas de exclusão de uma BST, como o nó que será excluido já vem como parametro da função, essa não possiu nenhuma diferença de implementação em relação a função da árvore exposta em aula.

Impressão

Para a impressão foi criada uma função para imprimir árvore utilizando o padrão de parenteses, porém neste caso os parentes foram substituidos por chaves, para uma melhor visualização, buscando diferenciar a arvore principal A das arvores B que estao em seus nodos.

Foram também seguidos os protocolos de impressão especificado nos exemplos dados no enunciado do trabalho.

Outras Funções

Alem das funcoes normalmente necessarias para a funcionalidade adequada das arvores, tambem foi necessaria a criacao de duas funcoes em particular para a resolucao do trabalho como enunciado. Uma realiza a soma dos valores que estariam nos nodos de uma entrada com o padrao de parenteses (soma_entrada, que recebe um ponteiro para char, essencialmente a string de entrada), enquanto a outra faz uma soma similar, mas a partir da arvore que foi montada a partir de uma entrada como a da primeira, ja estando presente na arvore A (soma_arvore, que recebe um ponteiro para nodo do tipo da arvore B)

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published