GithubHelp home page GithubHelp logo

rubro-negra's Introduction

/*----------------------------------------------------------------------------*/
/* UFPR – Bacharelado em Ciência da Computação                                */
/* CI057: Algoritmos e Estruturas de dados III, 2sem/2013                     */
/* Aluno: Marfan Fragoso Veras Junior - GRR20113754                           */
/*----------------------------------------------------------------------------*/

/*----------------------------------------------------------------------------*/
Uma árvore vermelho-preto é uma árvore de pesquisa binária com um bit extra de 
armazenamento por nó: sua cor, que pode ser VERMELHO ou PRETO. Restringindo o
modo como os nós podem ser coloridos em qualquer caminho desde a raiz até uma
folha, as árvores vermelho-preto asseguram que nenhum desses caminhos será 
maior que duas vezes o comprimento de qualquer outro, de forma que a árvore é
aproximadamente balanceada.
Cada nó da árvore contém agora os campos cor, chave, pai, esq e dir. 

Uma árvore de pesquisa binária é uma árvore vermelho-preto se satisfaz às se-
guintes propriedades vermelho-preto:
    1. Todo nó é vermelho ou preto.
    2. A raiz é preta.
    3. Toda folha (NIL) é preta.
    4. Se um nó é vermelho, então ambos os seus filhos são pretos.
    5. Para cada nó, todos os caminhos desde um nó até as folhas descendentes
       contêm o mesmo número de nós pretos.
Por questão de conveniência no uso de condições limites no código de árvores
vermelho-preto, usamos uma única sentinela para representar NILL. Para uma ár-
vore vermelho-preto T, a sentinela nodonull é um objeto com os mesmos campos
que um nó comum na árvore. Seu compo cor é PRETO e seus outros campos--pai, esq,
dir e chave--podem ser deginidos como valores arbitrários.
Chamamos o número de nós pretos em qualquer caminho desde um nó x, sem incluir
esse nó, até uma folha, de altura de preto do nó. Pela prorpriedade 5, a noção 
de altura de preto é bem definida, pois todos os caminhos descendentes a partir
do nó têm o mesmo número de nós pretos. Definimos a altura de preto de uma ár-
vore vermelho-preto como a altura de preto de sua raiz.

Lema
Uma árvore vermelho-preto com n nós internos tem altura no máximo 2lg(n+1).

As operações sobre árvores de pesquisa arvRN_insere e arvRN_remove, quando
executadas sobre uma árvore vermelho-preto com n chaves demoram o tempo O(lg n).
Considerando-se que elas modificam a árvore, o resultado pode violar as pro-
priedades vermelho-preto enumeradas acima. Para restabelecer essas propriedades,
devemos mudar as cores de alguns nós na árvore e também mudar a estrutura de 
ponteiros.
Mudamos a estrutura de ponteiros através de rotação.
/*----------------------------------------------------------------------------*/

rubro-negra's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.