J'ai été surpris de voir qu'il n'y avait aucune structure général d'arbre dans System.Collections. Je n'ai pas chercher plus loin, ils se cachent peut-être quelquepart. J'en ai donc bâti quelques unes très générales (BinaryTree & NTree) pour une utilisation simple.
Enjoy!
Source / Exemple :
using UtilityLib.Collections;
namespace ProgrammeTest
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
BinaryTree<int> arbre = new BinaryTree<int>(10);
arbre.Root.LeftValue = 5;
arbre.Root.RightValue = 15;
arbre.Root.LeftNode.LeftValue = 2;
arbre.Root.LeftNode.RightValue = 7;
arbre.Root.RightNode.LeftValue = 12;
arbre.Root.RightNode.RightValue = 17;
Console.WriteLine("Valeurs -->");
foreach (int i in arbre.AllValuesLeftToRight)
Console.Write("[ {0} ] ",i);
Console.WriteLine();
Console.WriteLine("Valeurs <---");
foreach (int i in arbre.AllValuesRightToLeft)
Console.Write("[ {0} ] ", i);
Console.WriteLine();
Console.ReadLine();
}
}
}