Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

6 réponses
Avatar
Em
ça se fait bien en C ou en Java, mais en VB ??
merci par avance !

--
Em

6 réponses

Avatar
LE TROLL
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
|
|
Avatar
Jean-marc
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_' ;
Avatar
Em
Merci bcp Jean Marc!

--
Em
Avatar
touriste
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 !



Avatar
Em
> 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
Avatar
Jean-marc
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_' ;