Vous trouverez plusieurs fichiers pour vous aider à démarrer le TP:
https://www.dequidt.me/uploads/se/trees.c
et https://www.dequidt.me/uploads/se/trees.h
contenant des fonctions de base de traitement des arbreshttps://www.dequidt.me/uploads/se/main.c
un fichier qui permet d’utiliser ses fonctionshttps://www.dequidt.me/uploads/se/tree2pdf.c
un deuxième fichier qui permet de transformer un arbre en PDF
https://www.dequidt.me/uploads/se/samples/
un repertoire qui contient des fichiers de données à savoir balanced.dot
balanced.pdf
balanced.txt
degenerated.dot
degenerated.pdf
degenerated.txt
empty.dot
empty.pdf
empty.txt
leaf.dot
leaf.pdf
leaf.txt
unspecified.dot
unspecified.pdf
unspecified.txt
cons_tree(...)
qui construit un ABR (fait en cours).mk_empty_tree(...)
is_empty(...)
is_leaf(...)
tous des fonctions auxiliaires. (Fait en cours)add(...)
qui ajout un élément dans un ABR (arbre binaire de recherche, donc ordonné !). (Fait en cours)print_tree(...)
qui imprime un ABR par parcours récursif, en ordre ascendant (infixe).unspecified.txt
, balanced.txt
, degenerated.txt
alors que ce sont des arbres différents (voir les dessins dans le répertoire samples/
)load_tree(...)
qui construit un arbre d’entiers à partir d’un fichier.free_tree(...)
qui libère la mémoire utilisé par un arbre binaire.(père =L=> fils)
pour les fils gauches, et (père =R=> fils)
pour les fils droits, d’un arbre donné. Ne pas imprimer les sous-arbres vides. À part la flèche =L/R=>, l’impression donne des arbres correspondant aux fichiers .dot fournis dans le répertoire samples/
.pdf
ont été générés à partir des fichiers .dot
(fournis dans
samples/
). Le format .dot
est un format de représentation textuelle simple
d’arbres [^1]. Visualisez le format de ces fichiers dans votre éditeur de texte
préféré ou par la commande less
. À partir de ce format .dot
, la commande dot
permet de générer une version visualisable (.pdf
, .png
,…) comme suit (en
pdf
par exemple) :L’objectif est alors de générer de tels fichiers pour des arbres construits à
partir de fichiers de données (tels que ceux fournis dans samples/*.txt
).
Préparation : Un fichier
tree2pdf.c
plus conséquent est fourni qui : Génère, par appel à la fonctiongenerate_dot
, les fichiers.dot
correspondants aux fichiers de données dont les noms ont été passés en paramètre (e.g. à partir desamples/balanced.txt
on génèresamples/balanced.dot
). Transforme ces fichiers.dot
endot
.
./tree2pdf samples/*.txt
Vous devez retrouver les fichiers .dot
et .pdf
.