コード例 #1
0
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                throw new ArgumentException();
            }

            switch (args[0])
            {
            case "BinaryTree":
                BinaryTrees.BinaryTreeTest("21");
                break;
            }
        }
コード例 #2
0
ファイル: BinaryTree.cs プロジェクト: Erroman/universal
        IDirectory IDirectory.Add(string name, string description, string ext)
        {
            ContainsDirectory(name);
            ISingleResult <InsertBinaryNodeResult> res =
                Context.InsertBinaryNode(_Id, name, description, ext);
            InsertBinaryNodeResult r =
                res.ElementAt <InsertBinaryNodeResult>(0);
            BinaryTree bt = new BinaryTree();

            bt._Id          = r.Id;
            bt._Name        = name;
            bt._Description = description;
            bt._ext         = ext;
            BinaryTrees.Add(bt);
            bt.BinaryTree1 = this;
            bt._ParentId   = _Id;
            return(bt);
        }
コード例 #3
0
        private static void PerfomBinaryTreeOps()
        {
            var binaryTree = new BinaryTrees();

            binaryTree.Insert(7);
            binaryTree.Insert(4);
            binaryTree.Insert(9);
            binaryTree.Insert(1);
            binaryTree.Insert(6);
            binaryTree.Insert(8);
            binaryTree.Insert(10);
            Console.WriteLine(binaryTree.Find(8));
            Console.WriteLine(binaryTree.Find(13));
            Console.WriteLine("Pre Order Traversal");
            binaryTree.TraverseTreePreOrder();
            Console.WriteLine("In Order Traversal");
            binaryTree.TraverseTreeInOrder();
            Console.WriteLine("Post Order Traversal");
            binaryTree.TraverseTreePostOrder();
            Console.WriteLine("Height of tree is " + binaryTree.TreeHeight());

            var binaryTree2 = new BinaryTrees();

            binaryTree2.Insert(7);
            binaryTree2.Insert(4);
            binaryTree2.Insert(3);
            binaryTree2.Insert(9);
            binaryTree2.Insert(1);
            binaryTree2.Insert(6);
            binaryTree2.Insert(8);
            binaryTree2.Insert(10);

            Console.WriteLine("Two binary trees are equal :" + binaryTree.IsEqual(binaryTree2));
            Console.WriteLine("Binary Tree is binary search tree : " + binaryTree.IsBinarySearchTree());

            Console.WriteLine(string.Join(",", binaryTree.GetNodesAtKDistance(2).ToArray()));

            Console.WriteLine("Level Order Traversal");
            binaryTree.LevelOrderTraversal();

            Console.ReadLine();
        }
コード例 #4
0
        private models.Run Iteration(string benchmark, int iteration, bool isDryRun)
        {
            var dryRun = isDryRun ? " dryrun" : "";

            Logging.GetLogging().InfoFormat("Benchmarker | Benchmark{0} \"{1}\": start iteration {2}", dryRun, benchmark, iteration);
            GC.Collect(1);
            System.Threading.Thread.Sleep(5 * 1000);              // cool down?

            var sw = Stopwatch.StartNew();

            switch (benchmark)
            {
            case "bh":
                BH.Main(new string[] { "-b", "400", "-s", "200" }, Logging.GetLogging());
                break;

            case "binarytree":
                BinaryTrees.Main(new string[] { "17" }, Logging.GetLogging());
                break;

            case "bisort":
                BiSort.Main(new string[] { "-s", "1500000" }, Logging.GetLogging());
                break;

            case "euler":
                Euler.Main(new string[] { }, Logging.GetLogging());
                break;

            case "except":
                except.Main(new string[] { "500000" }, Logging.GetLogging());
                break;

            case "gcbridge-links":
                GcBridge.Main(new string[] { benchmark }, Logging.GetLogging());
                break;

            case "gcbridge-linkedfan":
                GcBridge.Main(new string[] { benchmark }, Logging.GetLogging());
                break;

            case "gcbridge-inversefan":
                GcBridge.Main(new string[] { benchmark }, Logging.GetLogging());
                break;

            case "gcbridge-deadlist":
                GcBridge.Main(new string[] { benchmark }, Logging.GetLogging());
                break;

            case "gcbridge-selflinks":
                GcBridge.Main(new string[] { benchmark }, Logging.GetLogging());
                break;

            case "gcbridge-spider":
                GcBridge.Main(new string[] { benchmark }, Logging.GetLogging());
                break;

            case "gcbridge-doublefan-1000":
                GcBridge.Main(new string[] { benchmark }, Logging.GetLogging());
                break;

            case "gcbridge-doublefan-4000":
                GcBridge.Main(new string[] { benchmark }, Logging.GetLogging());
                break;

            case "grandetracer":
                RayTracer.Main(new string[] { }, Logging.GetLogging());
                break;

            case "graph4":
                graph4.Node.Main(Logging.GetLogging());
                break;

            case "graph8":
                graph8.Node.Main(Logging.GetLogging());
                break;

            case "hash3":
                Hash3.Main(new string[] { "400000" }, Logging.GetLogging());
                break;

            case "health":
                Health.Main(new string[] { "-l", "10", "-t", "16" }, Logging.GetLogging());
                break;

            case "lists":
                Lists.Main(new string[] { "1000" }, Logging.GetLogging());
                break;

            case "mandelbrot":
                Mandelbrot.Main(new string[] { "1500" }, Logging.GetLogging());
                break;

            case "n-body":
                NBody.Main(new string[] { "400000" }, Logging.GetLogging());
                break;

            case "objinst":
                Objinst.Main(new string[] { "4000000" }, Logging.GetLogging());
                break;

            case "onelist":
                OneList.Main();
                break;

            case "perimeter":
                Perimeter.Main(new string[] { "-l", "17" }, Logging.GetLogging());
                break;

            case "raytracer2":
                RayTracer2.Main(new string[] { "120" }, Logging.GetLogging());
                break;

            case "raytracer3":
                RayTracer3.Main(new string[] { "120" }, Logging.GetLogging());
                break;

            case "scimark-fft":
                ScimarkEntrypoint.Main(new string[] { "fft" }, Logging.GetLogging());
                break;

            case "scimark-sor":
                ScimarkEntrypoint.Main(new string[] { "sor" }, Logging.GetLogging());
                break;

            case "scimark-mc":
                ScimarkEntrypoint.Main(new string[] { "mc" }, Logging.GetLogging());
                break;

            case "scimark-mm":
                ScimarkEntrypoint.Main(new string[] { "mm" }, Logging.GetLogging());
                break;

            case "scimark-lu":
                ScimarkEntrypoint.Main(new string[] { "lu" }, Logging.GetLogging());
                break;

            case "specraytracer":
                MainCL.Main(new string[] { "200", "1250" }, Logging.GetLogging());
                break;

            case "strcat":
                strcat.Main(new string[] { "40000000" });
                break;

            default:
                throw new NotImplementedException();
            }
            sw.Stop();
            Logging.GetLogging().InfoFormat("Benchmarker | Benchmark{0} \"{1}\": finished iteration {2}, took {3}ms", dryRun, benchmark, iteration, sw.ElapsedMilliseconds);
            var run = new models.Run {
                Benchmark = new models.Benchmark {
                    Name = benchmark
                }
            };

            run.RunMetrics.Add(
                new models.RunMetric {
                Metric = models.RunMetric.MetricType.Time,
                Value  = TimeSpan.FromMilliseconds(sw.ElapsedMilliseconds)
            }
                );
            return(run);
        }
コード例 #5
0
ファイル: BinaryTree.cs プロジェクト: Erroman/universal
 IEnumerator <IDirectory> IEnumerable <IDirectory> .GetEnumerator()
 {
     return(BinaryTrees.Cast <IDirectory>().GetEnumerator());
 }