[ALGO] Un truc à Arbre

Un truc à Arbre [ALGO] - Algo - Programmation

Marsh Posté le 06-01-2004 à 00:31:40    

Je me rappel avoir vu rapidement pendant mes études une facon de monter ses variables en arbre. J'ai cependant plus mes notes et ca me serait vachement utile
 
ex:
 
frigo
|
tirroir | tablette
|
fruit | légume | viande
 
....
 
vous voyez :D
 
et me confirmer que c'est utilisable en sachant que les variables (frigo, tirroir, ...) seront des objets

Reply

Marsh Posté le 06-01-2004 à 00:31:40   

Reply

Marsh Posté le 06-01-2004 à 01:14:40    

jai trouvé ce truc
 
deja ca me rafraichit pas mal la mémoire
 
http://www.cs.vu.nl/~oaumage/Cours [...] rs_02.html

Reply

Marsh Posté le 06-01-2004 à 01:53:36    

heuh je vois pas trop ce que tu veux :D

Reply

Marsh Posté le 06-01-2004 à 02:09:02    

chrisbk a écrit :

heuh je vois pas trop ce que tu veux :D


 
je donne l'exemple concret
 
j'ai un fichier html, je veux créer un arbre d'objet qui se trouve à être la structure de mon fichier html
 
ex: au sommet de l'arbre j'ai html (la balise), sous celui-ci, j'ai 2 noeuds: head et body, dans head, jai les noeuds de title, de meta... dans body j'ai des noeuds de p, de div, etc...
 
ainsi va la vie
 
1 noeud correspond donc à une balise conteneur (et non une simple image ou un br).
 
Une balise sera un objet, dans lequel il y aura des parametres à respecter (id, name, style, class, ...)
 
à partir de cette arbre, je vais recréé le fichier html "dit clean", xhtml valide si le bonheur me le dit, et possiblement, le plus compressé possible (retirer les espaces inutiles, commentaires et autres trucs du genre)
 
voila :D
 
alors je me suis dit: tiens un arbre, j'ai vu ca dans mes études et voici enfin une situation qui semble convenir à son utilisation
 
mais je ne me souvient plus très bien comment l'utiliser, en plus que les exemples que je trouve, c'est du C et que je risque de faire le tout en perl

Reply

Marsh Posté le 06-01-2004 à 02:13:58    

ah ben ouais, un arbre quoi. une classe de base et des noeuds qui derivent de cette classe, et hop. Ensuite fo voir ce que tu veux en faire de ton arbre.... (pis en perl, ben, demerdes toi :D)

Reply

Marsh Posté le 06-01-2004 à 02:17:01    

ok bin deja c'est algo alors  je cherche pas spécifique au language
 
un arbre, ca peut contenir des noeuds de différentes classes logiquement?
 
qu'elle est la structure d'une objet noeud comparative au même objet hors de l'arbre?

Reply

Marsh Posté le 06-01-2004 à 05:52:19    

Tu fais ça comme tu veux, y'a pas de façon universellement meilleures que les autres...
 
La façon la plus simple de créer une structure d'arbre, c'est que chaque noeud ait un « fils ainé » et un « frère cadet ». Après il y a en gros deux façons de faire, à toi de choisir celle qui te convient le mieux :

  • Tu as un type spécial « noeud » qui contient 3 pointeurs : un vers le fils ainé, un vers le frère cadet, un vers le contenu du noeud. Tu as donc un arbre d'un côté et tes objets de l'autre, les noeud de l'arbre pointant vers tes objets.
  • Tu ajoutes les pointeurs « fils ainé » et « frère cadet » directement aux objets que tu veux organiser en arbre. Tu as donc simplement tes objets, organisés directement en arbre. En POO ça revient a faire dériver tes objets d'un type « noeud », si on veut.

Reply

Marsh Posté le 06-01-2004 à 11:48:31    

ahhh l'arbre c'est juste des noeuds alors, excellent à savoir

Reply

Marsh Posté le 06-01-2004 à 15:25:56    

Burgergold a écrit :

et me confirmer que c'est utilisable en sachant que les variables (frigo, tirroir, ...) seront des objets

Soit tu dérives frigo, tirroir & co de node, soit ta node devient un proxy qui contient un objet quelconque. (plus clean je trouve)

Reply

Marsh Posté le 06-01-2004 à 23:47:50    

un proxy?
 
c'est une notion général à la prog ou c'est uniquement en C par exemple?
 
si c'est général, tu peux m'expliquer vite fait c'est quoi?

Reply

Marsh Posté le 06-01-2004 à 23:47:50   

Reply

Marsh Posté le 07-01-2004 à 00:30:21    

Contraction de procuration. Au lieu d'aller voter, tu donnes procuration à un pote pour qu'il vote à ta place. Au lieu de permettre à tous tes objets de se hiérarchiser, tu donnes procuration à une classe qui s'occupe du boulot.
 
Je trouve ça plus clean : tu sépares les données et tu les instancies à loisir. Besoin d'afficher plusieurs frigos qui partagent les mêmes données ? Besoin d'afficher une page html qui affiche plusieurs fois la même image ? Tu créés plusieurs nodes qui ont chacune une position spécifique, pointant vers le même objet (frigo, image).

Reply

Marsh Posté le 07-01-2004 à 00:31:57    

Concrètement :
 
class node;
class frigo : public node;
 
J'aime pas pour les raisons sus-citées.
 
class node
{
   // une méthode pour attacher tout et n'importe quoi
}
 
class frigo;
 
Bieeen.

Reply

Marsh Posté le 07-01-2004 à 00:36:02    

c'est à voir aussi comment je serais en mesure d'appliquer un tel principe à ce que je veux faire
 
sachant qu'il risque d'être aussi rare que 2 objet d'une page html soit les mêmes

Reply

Marsh Posté le 07-01-2004 à 21:01:52    

Burgergold a écrit :

sachant qu'il risque d'être aussi rare que 2 objet d'une page html soit les mêmes

Bah ça y'a que toi qui peut y répondre. :D
 
De mon expérience, c'est le truc dont on a rarement besoin, mais qui pète un grand bout de l'architecture le jour où ... on s'aperçoit qu'on en a finalement besoin.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed