private static int SortTree(int n, int[] mas) { Library.TreeNode Tree = new Library.TreeNode(); Tree.Info = mas[0]; int c1 = 0; for (int i = 1; i < n; i++) { AddNode(ref Tree, mas[i], ref c1); } return(c1); }
static void AddNode(ref Library.TreeNode root, int info, ref int c) { var newNode = new Library.TreeNode { Info = info }; c++; if (root == null) { root = newNode; return; } var node = root; while (true) { if (node.Info > info) { c += 2; if (node.Left == null) { node.Left = newNode; return; } else { node = node.Left; } } else if (node.Info < info) { c += 3; if (node.Right == null) { node.Right = newNode; return; } else { node = node.Right; } } else { c += 2; return; } } }