Example #1
0
 private ITreeDataProvider GetTreeData(EnumTreeTypes treeType)
 {
     return(treeType switch
     {
         EnumTreeTypes.Heap => new DataProvidersFactory(SampleSize).GetProvider(EnumTreeDataProvider.Heap),
         EnumTreeTypes.BST => new DataProvidersFactory(SampleSize).GetProvider(EnumTreeDataProvider.BST),
         _ => throw new NotImplementedException("Unknown tree type '" + nameof(treeType) + "'"),
     });
Example #2
0
 private static ITree GetTree(EnumTreeTypes treeType)
 {
     return(treeType switch
     {
         EnumTreeTypes.Heap => new HeapTree(),
         EnumTreeTypes.BST => new BinarySearchTree(),
         _ => throw new NotImplementedException("Unknown tree type '" + nameof(treeType) + "'"),
     });
Example #3
0
    public BinaryTreeEstimation Estimate(EnumTreeTypes treeType)
    {
        var _tree     = GetTree(treeType);
        var _treeData = new DataProvidersFactory(SampleSize).GetProvider(treeType == EnumTreeTypes.BST ? EnumTreeDataProvider.BST : EnumTreeDataProvider.Heap);

        return(new BinaryTreeEstimation()
        {
            Deserialize = _tree.CreateTree(_treeData.Data),
            Search = _tree.Search(_treeData.Tree, _treeData.AvgValue),
            Insert = _tree.Insert(_treeData.Tree, _treeData.NotFoundValue),
        });
    }
Example #4
0
    public TraversalResults Traverse(EnumTreeTypes 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),
        });
    }