コード例 #1
0
        public BinaryTreeEstimation Estimate(eTreeTypes treeType)
        {
            var _tree     = GetTree(treeType);
            var _treeData = new DataProvidersFactory(SampleSize).GetProvider(treeType == eTreeTypes.BST ? eTreeDataProvider.BST : eTreeDataProvider.Heap);

            return(new BinaryTreeEstimation()
            {
                Deserialize = _tree.CreateTree(_treeData.Data),
                Search = _tree.Search(_treeData.Tree, _treeData.AvgValue),
                Insert = _tree.Insert(_treeData.Tree, _treeData.NotFoundValue),
            });
        }
コード例 #2
0
        private ITreeDataProvider GetTreeData(eTreeTypes treeType)
        {
            switch (treeType)
            {
            case eTreeTypes.Heap:
                return(new DataProvidersFactory(SampleSize).GetProvider(eTreeDataProvider.Heap));

            case eTreeTypes.BST:
                return(new DataProvidersFactory(SampleSize).GetProvider(eTreeDataProvider.BST));
            }

            throw new NotImplementedException("Unknown tree type '" + nameof(treeType) + "'");
        }
コード例 #3
0
        private ITree GetTree(eTreeTypes treeType)
        {
            switch (treeType)
            {
            case eTreeTypes.Heap:
                return(new HeapTree());

            case eTreeTypes.BST:
                return(new BinarySearchTree());
            }

            throw new NotImplementedException("Unknown tree type '" + nameof(treeType) + "'");
        }
コード例 #4
0
        public TraversalResults Traverse(eTreeTypes treeType)
        {
            //var _tree = GetTree(treeType);
            var treeData = GetTreeData(treeType);

            return(new TraversalResults()
            {
                Tree = treeData.Tree,
                BreadthFirstResult = new BreadthFirstTraversal().Traverse(treeData.Tree),
                InOrderResult = new InOrderTraversal().Traverse(treeData.Tree),
                PostOrderResult = new PostOrderTraversal().Traverse(treeData.Tree),
                PreOrderResult = new PreOrderTraversal().Traverse(treeData.Tree),
            });
        }