// Algo d'ajout par insertion private static void InsertAddTList(ref Misc.TList L, int w, char k) { Misc.TList p, prec, nouv; p = L; prec = null; // sert à rien, c'est juste pour que VS croit pas qu'on arrive au else avec prec sans valeur. while (p.Weight != 0 && p.Weight < w) // weight = 0 équivaut à pointeur nul. { prec = p; p = p.Next; } nouv = new Misc.TList(); nouv.Weight = w; nouv.Next = p; nouv.Tree = new Misc.TBinaryTree(); nouv.Tree.Key = k; nouv.Tree.Left = null; nouv.Tree.Right = null; if (p == L) { L = nouv; } else { prec.Next = nouv; } }
public static Misc.TList CreateList(Misc.TFrequency frequency) { Misc.TList L = new Misc.TList(); for (int i = 0; i < 255; i++) { if (frequency[i] > 0) { InsertAddTList(ref L, frequency[i], Convert.ToChar(i)); } } return L; }