Explication de la Rouge-Noir arbre en fonction de la mise en œuvre de TreeMap en JAVA

J'ai été en passant par le code source de TreeMap dans JAVA.
Conformément à la JAVA doc:

Rouge-Noir à base de bois NavigableMap mise en œuvre. La carte est triée selon l'ordre naturel de ses clés, ou par un Comparateur fournies au moment de la création de la carte, en fonction du constructeur est utilisé.

Cette application donne des garanties log(n) coût du temps pour la containsKey, get, put et les opérations de suppression. Les algorithmes sont des adaptations de ceux de Cormen, Leiserson et Rivest Introduction aux Algorithmes.

Dans le code source, j'ai trouvé que l'Intérieur de la Classe Entrée a été utilisé comme un nœud.

static final class Entry<K,V> implements Map.Entry<K,V> {
        K key;
        V value;
        Entry<K,V> left = null;
        Entry<K,V> right = null;
        Entry<K,V> parent;
        boolean color = BLACK;
        ....

Comme pour le defination de Rouge-Noir arbre. À partir de Wikipedia, j'ai trouvé:

Rouge–noir arbre est un type d'auto-équilibrage arbre de recherche binaire, une structure de données utilisé en informatique.

L'auto-équilibrage de la charge est fournie par la peinture à chaque nœud avec l'une des deux couleurs (ces dernières sont généralement appelés "rouge" et "noir", d'où le nom de l'arbre) de telle façon que le résultat est peint arbre satisfait certaines propriétés qui ne permet pas à devenir assez déséquilibré. Lorsque l'arbre est modifiée, la nouvelle arborescence est par la suite transformé et repeint pour restaurer la coloration des propriétés. Les propriétés sont conçus de telle manière que cette réorganisation et recoloring peut être effectuée de manière efficace.

J'ai essayé d'analyser le code source mais je ne pouvais pas comprendre ce qui suit:

  1. Suppose que je suis déjà les deux touches "C" et "E" dans l'Arbre, et ensuite je suis ajoutant des "D". Comment les nœuds seront organisées (à l'Aide d'naturel de la commande).

  2. Comment est-à auto-équilibrage de l'Arbre est mis en œuvre dans le code source java.

J'ai essayé de chercher pour le détail de la mise en oeuvre TreeMap, mais a été incapable de trouver un article comme le la suite de l'article j'ai trouvé pour le HashMap

Depuis hier, je suis accroché sur cet Arbre 🙁 quelqu'un Peut-il svp m'aider à descendre...

  • Avez-vous vu la JSE sources? Tout est clair là-bas.
InformationsquelleAutor Zeeshan | 2014-01-24