IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Remplir un arbre binaire avec une table ordonnée.


Sujet :

Algorithmes et structures de données

  1. #1
    Invité
    Invité(e)
    Par défaut Remplir un arbre binaire avec une table ordonnée.
    Bonjour!
    Je suis à la recherche de l'algorithme d'une fonction récursive prenant un tableau d'éléments ordonnés ainsi qu'une borne inférieur et une supérieur en paramètre, pour charger un arbre binaire équilibré.

    Cette procédure ressemblerait avec Ada au code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
        procedure Tree_Loader(Table : in table_access;
                                   B_Inf, B_Sup : in out Natural) is
     
                Coded_Word : T_Coded_Word;
                Midle : Natural := B_Inf + ((B_Sup - B_Inf)/ 2);
                New_B_Inf : Natural := b_inf+1;
                New_B_Sup : Natural := b_sup-1;
     
             begin
     
                if Midle < new_B_sup then
     
                   Tree_Loader(Table => Table,
                               B_Inf => midle,
                               B_Sup => new_B_sup);
                end if;
     
                Coded_Word := Table(Midle);
                Put_Line(To_String(Coded_Word.Word));
                Code_To_Word.Add(Coded_Word, Univers(Number_Of_Dictionary).To_Word);
                Word_To_Code.Add(Coded_Word, Univers(Number_Of_Dictionary).To_Code);
                if new_B_inf < Midle then
     
                   Tree_Loader(Table => Table,
                               B_Inf => new_B_inf,
                               B_Sup => midle);
                end if;
     
             end Tree_Loader;
    Merci pour votre aide, s'il vous plaît.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Yep!

    J'ai fini par retrouver mes sources, et j'ai pompé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    procedure Tree_Loader(Table : in table_access;
                                B_Inf, B_Sup : in Natural) is
             Coded_Word : T_Coded_Word;
             Middle : Natural := b_inf + (b_sup-b_inf) / 2;
             New_B_Inf : Natural;
             New_B_Sup : Natural;
          begin
             Coded_Word := Table(Middle);
             Code_To_Word.Add(Coded_Word, Univers(Number_Of_Dictionary).To_Word);
             Word_To_Code.Add(Coded_Word, Univers(Number_Of_Dictionary).To_Code);
             if Middle-1 >= B_Inf then
                new_b_sup := middle-1;
                Tree_Loader(Table => Table,
                            B_Inf => b_inf,
                            B_Sup => new_b_sup);
             end if;
             if  middle+1 <= B_sup then
                new_b_inf := middle+1;
                Tree_Loader(Table => Table,
                            B_Inf => new_b_inf,
                            B_Sup => b_sup);
             end if;      
     
          end Tree_Loader;
    Merci bien.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplir un combobox avec une table SAS
    Par Solyena dans le forum C#
    Réponses: 1
    Dernier message: 21/04/2011, 15h30
  2. Réponses: 4
    Dernier message: 19/04/2009, 20h49
  3. Afficher un arbre binaire avec sa structure
    Par PhoneKilleR dans le forum C
    Réponses: 7
    Dernier message: 23/04/2008, 23h24
  4. [Oracle] Remplir une liste déroulante avec une table
    Par CYCLOPE91440 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 26/12/2006, 15h26
  5. Probleme avec une table vide
    Par king dans le forum Bases de données
    Réponses: 5
    Dernier message: 20/03/2004, 14h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo