Petit quizz en passant
Bonjour à tous, je suis tombé sur un article proposant un problème sympathique, je me permets de vous le partager.
Petit contest, comment obtenir l’affichage suivant:
a
├─b
│ ├─c
│ │ └─d
│ └─e
│ └─f
└─g
├─h
│ └─i
└─j
(astuce: vous pouvez copier/coller les caractères semi-graphiques depuis cet article même…)
Avec l’entrée suivante :
var root = new Node("a",
new Node("b",
new Node("c",
new Node("d")),
new Node("e",
new Node("f"))),
new Node("g",
new Node("h",
new Node("i")),
new Node("j")));
Le modèle étant assez basique :
class Node
{
public Node(string text, params Node[] children)
{
this.Text = text;
this.Children = children ?? new Node[] {};
}
public string Text { get; private set; }
public IList<Node> Children { get; private set; }
}
Je vous laisse implémenter la classe Dumper !
sealed class Dumper
{
static public string Dump(Node root) { /* ... */ }
/* ... */
}
Je suis preneur de tout type d’implémentation (CSharp, VB, Java, PHP, FSharp…)
Mitsu