Comment créer une structure de type 'arbre'en VB ?

Le
Em
ça se fait bien en C ou en Java, mais en VB ??
merci par avance !

--
Em
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LE TROLL
Le #15391881
Bonjour,

C'est quoi un arbre ?
Un arbre de quoi ?
Ici, mon logiciel qui fait des arbres, ici:

http://irolog.free.fr/irolog_vente/genealogie_v/index.htm


--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Em" <no_spam> a écrit dans le message de news:
47225f19$0$27369$
| ça se fait bien en C ou en Java, mais en VB ??
| merci par avance !
|
| --
| Em
|
|
Jean-marc
Le #15391871
Em wrote:
ça se fait bien en C ou en Java, mais en VB ??
merci par avance !



Hello,

c'est tout simple: VB N'ayant pas en tant que tel d'allocation dynamique ni
de pointeurs, il suffit de les iméplemnter à la main à l'aide tableaux et
tableaux dynamiques.

Nous avons écrit un article sur le sujet:
"Comment implémenter et utiliser les structures de données classiques en VB
?"
http://faq.vb.free.fr/index.php?question7

De puis ce point de départ, tu trouveras des liens vers divers structures
telles que listes chainées, etc.

Les tableaux dynamiques sont un bon point de départ:
http://faq.vb.free.fr/index.php?question2

Les listes chainées aussi:
http://faq.vb.free.fr/index.php?question0

Un article sur les arbres (trees) et les "tries" est en préparation et
devrait voir le jour avec la prochaine release, on travaille dessus :-)

Perso, j'utilise souvent les arbres en VB, j'ai implémenté une classe qui
par derrière gère simplement les noeuds comme étant des éléments d'un
tableau dynamique de structure.

Plutot que de stocker un "pointeur" vers les noeuds fils, je stocke un
indice de tableau.

Le malloc de C est remplacé par une fonction "GetFreeNode" qui en fait me
retourne le prochain indice libre dans mon tableau dynamique de noeuds. Le
free() de C est aussi remplacé par son équivalent tableau.

Quand je n'ai plus de place, je réalloue dynamiquement avec Redim Preserve,
et le tour est joué.

J'ai une implémentation de recherche dans un dictionnaire par arbre de
lettres (dico avec plus de 600.000 entrées) qui a quasimment les mêmes perfs
que la version C, avec les même data (qq micro-secondes pour valider la
présence d'une entrée dans le dico).

Bonne suite !

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Em
Le #15391861
Merci bcp Jean Marc!

--
Em
touriste
Le #15391851
Bonjour,

Merci pour ces infos.
Donc si j'ai bien compris la réalisation d'un interpreteur de langage
est possible ! (arbre binaire)

A+

Christophe

nb: ta classe elle est pas en ligne qq part ??




Jean-marc a écrit :
Em wrote:

ça se fait bien en C ou en Java, mais en VB ??
merci par avance !




Hello,

c'est tout simple: VB N'ayant pas en tant que tel d'allocation dynamique ni
de pointeurs, il suffit de les iméplemnter à la main à l'aide tableaux et
tableaux dynamiques.

Nous avons écrit un article sur le sujet:
"Comment implémenter et utiliser les structures de données classiques en VB
?"
http://faq.vb.free.fr/index.php?question7

De puis ce point de départ, tu trouveras des liens vers divers structures
telles que listes chainées, etc.

Les tableaux dynamiques sont un bon point de départ:
http://faq.vb.free.fr/index.php?question2

Les listes chainées aussi:
http://faq.vb.free.fr/index.php?question0

Un article sur les arbres (trees) et les "tries" est en préparation et
devrait voir le jour avec la prochaine release, on travaille dessus :-)

Perso, j'utilise souvent les arbres en VB, j'ai implémenté une classe qui
par derrière gère simplement les noeuds comme étant des éléments d'un
tableau dynamique de structure.

Plutot que de stocker un "pointeur" vers les noeuds fils, je stocke un
indice de tableau.

Le malloc de C est remplacé par une fonction "GetFreeNode" qui en fait me
retourne le prochain indice libre dans mon tableau dynamique de noeuds. Le
free() de C est aussi remplacé par son équivalent tableau.

Quand je n'ai plus de place, je réalloue dynamiquement avec Redim Preserve,
et le tour est joué.

J'ai une implémentation de recherche dans un dictionnaire par arbre de
lettres (dico avec plus de 600.000 entrées) qui a quasimment les mêmes perfs
que la version C, avec les même data (qq micro-secondes pour valider la
présence d'une entrée dans le dico).

Bonne suite !



Em
Le #15391841
> Merci pour ces infos.
Donc si j'ai bien compris la réalisation d'un interpreteur de langage est
possible ! (arbre binaire)



c'est aussi dans ce but que j'ai posté ma question !

--
Em
Jean-marc
Le #15391821
touriste wrote:
Bonjour,

Merci pour ces infos.
Donc si j'ai bien compris la réalisation d'un interpreteur de langage
est possible ! (arbre binaire)



On peut tout faire, avec quasi n'importe quel langage;
En réalité, il faut que le dit langage soit "Turing-copmplet", ce
qui est le cas des langages usuels.

Pour faire un interpréteur, un arbre est bien utile, mais loin
d'être nécessaire. En fait, un langage qui permet de manipuler
des tableaux (ou un équivalent par exemple les listes de Lisp)
permet en pratique de tout faire.

Ce n'est pas parce qu'on a besoin d'un "arbre syntaxique" qu'on
a besoin d'une structure de données de type arbre. On peut par
exemple tout à fait implémenter l'arbre sous la forme d'un
automate à états finis, déterministe ou non.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Publicité
Poster une réponse
Anonyme