Example #1
0
        private static void Test()
        {
            var _tree = new LinkedTree <int>();

            void GetPermutations(int[] list, int k, int m)
            {
                if (k == m)
                {
                    DeleteFromArray(list);
                }
                else
                {
                    for (int i = k; i <= m; i++)
                    {
                        Swap(ref list[k], ref list[i]);
                        GetPermutations(list, k + 1, m);
                        Swap(ref list[k], ref list[i]);
                    }
                }
            }

            void DeleteFromArray(int[] list)
            {
                _tree.Clear();
                _tree.Add(1);
                _tree.Add(2);
                _tree.Add(3);
                _tree.Add(4);
                _tree.Add(5);
                _tree.Add(6);
                _tree.Add(7);
                _tree.Add(8);
                _tree.Add(9);
                _tree.Add(10);
                for (int i = 0; i < list.Length; i++)
                {
                    _tree.Remove(list[i]);
                }
            }

            var array = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

            GetPermutations(array, 0, array.Length - 1);
        }
Example #2
0
 static void PrintWrapper(LinkedTree <int> tree)
 {
     PrintTree(tree);
     Console.WriteLine("Level: " + tree.Level);
     Console.WriteLine();
 }
Example #3
0
 static void PrintTree(LinkedTree <int> tree)
 {
     PrintNode(tree._root);
 }