Você está na página 1de 3

Trabalho Prático de Estrutura de Dados II

2022/2

Aluno 1 - Gustavo Mendonça, Aluno 2 - Kevin Camargo


10 de dezembro de 2022

Resumo
Resumo top 100 atualizado
Palavras-chave— estrutura de dados, árvores rubro-negras

1 Introdução
Segundo Backes (2016), uma árvore pode ser definida como uma abstração matemática utilizada para representar
estruturas hierárquicas não lineares. Embora a definição seja simplista, ela descreve uma estrutura de dados
capaz de modelar grande variedade de situações reais. Tal fato levou a adequação do modelo matemático a
computação possibilitando que aplicações como diagramas hierárquicos e relações de descendência utilizem-no
em suas implementações.
Há diferentes modelos de árvores, dentre eles um tipo se destaca devido a utilização em bancos de dados,
compiladores e na representação de expressões aritméticas, tal tipo é denominado árvores binárias. No modelo
supracitado cada nó da árvore pode possuir nenhuma, uma ou no máximo duas subárvores interligadas a ele.
Valores menores que o armazenado no nó serão alocados na subárvore esquerda, o contrário ocorre na subárvore
direita, isso permite acesso facilitado a operação o que torna as árvores binárias um modelo indicado a aplicações
nas quais a ordem é importante.
Em 1972 Rudolf Bayer propôs um novo tipo de árvore binária que posteriormente ficou conhecida como
Árvores Rubro-Negras (RN). Essa estrutura utiliza um esquema de coloração que influencia diretamente nas
funções da mesma. O seu diferente modo de operação promove ganhos computacionais em relação a inserção e
remoção de elementos se comparada a outro modelo de árvore binária conhecida como AVL (BACKES, 2016).
Este trabalho busca detalhar o funcionamento de uma Árvore Rubro-Negra bem como seus processos de
inserção e remoção de elementos. Junto ao trabalho foi desenvolvido em linguagem C um algoritmo que imple-
menta as funções de inserção, remoção, busca e impressão dos elementos constituintes da árvore.

2 Árvores Rubro-Negras
As árvores rubro-negras se enquadram no tipo de árvores binárias balanceadas. A construção de uma árvore
do modelo segue cinco regras básicas que não podem ser descumpridas, sendo elas, todo nó deve ser vermelho
ou preto, a raiz é sempre preta, todo nó folha nulo é preto, se um nó é vermelho então seus filhos devem ser
pretos, para cada nó todos os caminhos deste nó até os nós folhas descendentes devem conter o mesmo número
de nós pretos.
Todas as operações feitas na árvore que a modificam devem conferir e garantir a integridade das cinco
regras supracitadas. As operações utilizam-se de rotações e ajustes de cores a fim de garantir o equilı́brio e
balanceamento da árvore (BACKES, 2016).

1
Figura 1: Exemplo de Árvore Rubro-Negra

2.1 Inserção de Elementos


A inserção de elementos em uma árvore rubro-negra segue um passo a passo definido e se divide em três casos
que alteram a forma da árvore, de modo a manter válidas todas as propriedades da estrutura. Primeiramente,
é necessário percorrer a árvore em busca do nó folha que irá receber o valor do elemento que deseja adicionar,
ao encontrar, o nó receberá o valor respectivo e a cor vermelha será atribuı́da para o mesmo. A partir desse
ponto o algoritmo irá identificar se as propriedades da árvore foram violadas e em caso positivo quais alterações
serão executadas de acordo com o caso resultante da inserção.
O primeiro caso se dá pela inserção de um valor na raiz da árvore, como o nó inserido estará na cor rubro é
necessário que ele sofra uma recoloração para a cor preta conforme indicado na figura 2. O segundo caso ocorre
ao inserir um elemento que possua como nó tio um elemento rubro, então precisaremos recolorir o nó tio, o
nó pai e o nó avô do elemento como ilustrado pela figura 3. Por fim, o terceiro caso ocorre quando o nó pai
do item é rubro e o nó tio negro, e se subdivide em outros quatro casos nos quais se faz necessário a execução
de rotações para a adequação dos elementos, a quantidade de rotações e os elementos envolvidos dependerá do
sub-caso ao qual a inserção se adequar, além disso se faz necessária a recoloração do item e do nó avô do item
em todos os sub-casos. Os quatro sub-casos estão ilustrados nas figuras 4, 5, 6 e 7.

Figura 2: Caso 1 inserção em Árvore Rubro-Negra

Figura 3: Caso 2 inserção em Árvore Rubro-Negra

2
Figura 4: Caso 3.1 inserção em Árvore Rubro-Negra

Figura 5: Caso 3.2 inserção em Árvore Rubro-Negra

Figura 6: Caso 3.3 inserção em Árvore Rubro-Negra

Figura 7: Caso 3.4 inserção em Árvore Rubro-Negra

2.2 Remoção de Elementos

3 Considerações Finais
Nulla malesuada porttitor diam. Donec felis erat, congue non, volutpat at, tincidunt tristique, libero. Vivamus
viverra fermentum felis. Donec nonummy pellentesque ante. Phasellus adipiscing semper elit. Proin fermentum
massa ac quam. Sed diam turpis, molestie vitae, placerat a, molestie nec, leo. Maecenas lacinia. Nam ipsum
ligula, eleifend at, accumsan nec, suscipit a, ipsum. Morbi blandit ligula feugiat magna. Nunc eleifend consequat
lorem. Sed lacinia nulla vitae enim. Pellentesque tincidunt purus vel magna. Integer non enim. Praesent
euismod nunc eu purus. Donec bibendum quam in tellus. Nullam cursus pulvinar lectus. Donec et mi. Nam
vulputate metus eu enim. Vestibulum pellentesque felis eu massa.

Referências

Você também pode gostar