Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
948 connectés 

  FORUM HardWare.fr
  Programmation
  Algo

  Arbre binaire, trouver la profondeur d une node.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Arbre binaire, trouver la profondeur d une node.

n°692845
xiluoc
un pc pour les unirs ....
Posté le 05-04-2004 à 16:43:54  profilanswer
 

:hello: ,
 
j essaye de coder , en suivant  l algo du Krug. une fonction qui imprime un arbre de haut en bas.
http://www.faqts.com/knowledge_bas [...] 9/fid/1266
exemple :  
l insertion de 2 1 3 0 8 dans un arbre binaire ordonne (binary search tree) donnerai a l ecran:
     2    
   1   3
      0 8  
 
la methode consiste a cree une grille 2D qui vas contenir
la representation de larbre.
 
1ere etape traverser l arbre inorder (gauche a droite) (l axe x)  
et inserer les elements a leur position X. ici : 1 2 0 3 8  
et Y correspondant a leur profondeur par rapport a la racine.
(1,2) (2,0) (0,3) (3,2) (8,3).
 
Pour creer la grille, le nombre de node n etant pas connu lors de la compilation et comme j ai pas envie de partir avec des pointeurs dans tous les sens j utilise un vecteur de vecteur

Code :
  1. vector < vector<int> > grid


 
ce qu il me faudrais c est une fonction me renvoyant la profondeur dune node. (node reconnu grace a sa valeur "data" )
 

Code :
  1. int deepness(int key)
  2. {
  3.     int count =0;
  4.     _deepness(key, root, count)
  5.     return count;
  6. }
  7. void _deepness(int key, tree t,int count)
  8. {
  9.    //?  
  10. }


 
  [:dams86]  
 
l algo pour recherche une node en fonction de sa valeur est le suivant.
 

Code :
  1. tree  btree::retrieves(int x, tree t)
  2. {
  3.     if (t==NULL) return t;
  4.     else if (x < t->data) return retrieve(x, t->left);
  5.     else if (x > t->data) return retrieve(x, t->right);
  6.     else return t; //found it
  7. }


 
Google ne mas rien apporte de plus que le lien trouve cidessus.
merci pour votre aide.

mood
Publicité
Posté le 05-04-2004 à 16:43:54  profilanswer
 

n°693054
xiluoc
un pc pour les unirs ....
Posté le 06-04-2004 à 00:42:21  profilanswer
 

personne nas eu a faire a ce genre d algp ? imprimer un arbre binaire en console ?

n°693126
xiluoc
un pc pour les unirs ....
Posté le 06-04-2004 à 05:49:29  profilanswer
 

c est bon jaitrouve

Code :
  1. int btree::nodedepth(int key){
  2.     int count = 0;
  3.     _nodedepth(key, root, count);
  4.     return count;
  5. }
  6. void btree::_nodedepth(int key, tree t, int& count){
  7.     if (t==NULL) return;
  8.     else if (key < t->data) {
  9.          count ++;
  10.          _nodedepth(key, t->left,count);
  11.          }
  12.     else if (key > t->data) {
  13.         _nodedepth(key, t->right, count);
  14.         count ++;
  15.         }
  16.     else return; //found it     
  17. }


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Algo

  Arbre binaire, trouver la profondeur d une node.

 

Sujets relatifs
Arbre binaire, comment copier tout les elements d un arbre dans ....Ou trouver un Taz de poche ?
Trouver la classe WMI d'une clé de registre ...Affichage d un arbre par une file
[algo] trouver le vainqueur à chi fou mi[vba] definition de Node
[ IHM ] - Où trouver de jolies icones de menu ?[Gros boulet inside] J'arrive pas à trouver l'option pour gcc ...
Trouver Visual C++ 
Plus de sujets relatifs à : Arbre binaire, trouver la profondeur d une node.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR