Exemple #1
0
        static void GenerateTree()
        {
            WriteLine("Enter a size, start value, and end value, separated by spaces.");
            var s = ReadLine() !.Trim();
            var l = s.Split().Select(x => int.Parse(x)).ToList();

            var(size, from, to) = (l[0], l[1], l[2]);
            var tree        = new RbTree <int>();
            var rng         = RandomSingleton.GetInstance();
            var toInclusive = to + 1;

            watch.Start();
            for (int i = 0; i < size; ++i)
            {
                int j = rng.Next(from, toInclusive);
                tree.Add(j);
            }
            watch.Stop();

            WriteLine($"Added {size} elements in {watch.ElapsedMilliseconds} milliseconds.");
            WriteLine("Display tree? (Y/n)");
            if (ReadLine() !.Trim().ToLower() == "y")
            {
                tree.Print();
            }
            var list = tree.InOrderKeys();

            Shuffle(list);

            watch.Restart();
            foreach (var key in list)
            {
                tree.Remove(key);
            }
            watch.Stop();
            WriteLine($"Removed {size} elements in {watch.ElapsedMilliseconds} milliseconds.");
        }