Je suis en train d'améliorer les performances de notre application. J'ai des informations de performance sous la forme d'un arbre d'appels, avec le nœud suivant de la classe:
public class Node
{
public string Name; // method name
public decimal Time; // time spent in method
public List<Node> Children;
}
Je veux imprimer l'arbre tel que je vois les lignes entre les nœuds - quelque chose de similaire à cette question. Qu'est ce qu'un algorithme que je peux utiliser en C# pour le faire?
Edit: Évidemment, j'ai besoin d'utiliser la récursivité - mais mes tentatives continuer à mettre les lignes dans les mauvais endroits. Ce que je demande, c'est un algorithme spécifique qui va imprimer l'arbre dans une belle manière - le moment d'imprimer une ligne verticale et lors de l'impression d'une horizontale.
Edit: Il ne suffit pas juste d'utiliser des copies d'une chaîne de retrait de nœuds. Je ne suis pas à la recherche pour
A
|-B
|-|-C
|-|-D
|-|-|-E
|-F
|-|-G
il doit être
A
+-B
| +-C
| +-D
| +-E
+-F
+-G
ou quelque chose de semblable, tant que la structure de l'arbre est visible. Notez que C et D sont en retrait différemment à G - je ne peux pas juste l'utilisation répétée de la chaîne de retrait de nœuds.