public void Traverse <T>(TreeTraversalType traversalType, TreeNode tree)
        {
            switch (traversalType)
            {
            case TreeTraversalType.InOrder:
                Console.Write("InOrder Traversal: ");
                InOrderTraversal <T>(tree);
                break;

            case TreeTraversalType.PreOrder:
                Console.Write("PreOrder Traversal: ");
                PreOrderTraversal <T>(tree);
                break;

            case TreeTraversalType.PostOrder:
                Console.Write("PostOrder Traversal: ");
                PostOrderTraversal <T>(tree);
                break;

            case TreeTraversalType.BreadthFirstOrder:
                Console.Write("LevelOrder Traversal: ");
                BreadthFirstOrderTraversal <T>(tree);
                break;

            default:
                Console.Write("Default InOrder Traversal: ");
                InOrderTraversal <T>(tree);
                break;
            }

            Console.WriteLine();
        }
        public void Traverse <T>(TreeTraversalType traversalType, T[] tree)
        {
            //TraverseWithoutRecursion(tree);
            switch (traversalType)
            {
            case TreeTraversalType.InOrder:
                InOrderTraversal(tree);
                break;

            case TreeTraversalType.PreOrder:
                PreOrderTraversal(tree);
                break;

            case TreeTraversalType.PostOrder:
                PostOrderTraversal(tree);
                break;

            case TreeTraversalType.BreadthFirstOrder:
                Console.Write("LevelOrder Traversal: ");
                BreadthFirstOrderTraversal(tree);
                break;

            default:
                InOrderTraversal(tree);
                break;
            }

            Console.WriteLine();
        }
        public string GetTraversePath(TreeTraversalType type)
        {
            string traversal = null;

            Traverse(type, out traversal);

            return(traversal);
        }
Ejemplo n.º 4
0
        public IEnumerable <TreeNode <T> > GetEnumerable(TreeTraversalType TraversalType, TreeTraversalDirection TraversalDirection)
        {
            switch (TraversalType)
            {
            case TreeTraversalType.DepthFirst: return(GetDepthFirstEnumerable(TraversalDirection));

            case TreeTraversalType.BreadthFirst: return(GetBreadthFirstEnumerable(TraversalDirection));

            default: return(null);
            }
        }
Ejemplo n.º 5
0
 public void Traverse(MCTSNodeStore store, VisitorFunc visitorFunc, TreeTraversalType traversalType)
 {
     if (traversalType == TreeTraversalType.Unspecified ||
         traversalType == TreeTraversalType.Sequential)
     {
         DoTraverseSequential(store, visitorFunc);
     }
     else
     {
         DoTraverse(store, visitorFunc, traversalType);
     }
 }
 public BSTEnumerator(BinarySearchTree <T> bst, TreeTraversalType type)
 {
     _tree = bst;
     if (_tree.Count > 0)
     {
         _arrIndex = 0;
         _array    = new T[_tree.Count];
         BuildIterableCollection(type);
         _version = _tree.Version;
         _tree.SubscribeToModificationNotification(OnTreeChangeHandler);
     }
 }
        public void Traverse <T>(TreeIterationType iterationType, TreeTraversalType traversalType, TreeNode input)
        {
            ITraversal traversal = null;

            if (iterationType == TreeIterationType.Iterative)
            {
                traversal = new IterativeLinkedListTreeTraversal();
                traversal.Traverse <T>(traversalType, input);
            }
            else
            {
                traversal = new RecursiveLinkedListTreeTraversal();
                traversal.Traverse <T>(traversalType, input);
            }
        }
        private void BuildIterableCollection(TreeTraversalType type)
        {
            switch (type)
            {
            case TreeTraversalType.PreOrder:
                Preorder(_tree.Root);
                break;

            case TreeTraversalType.InOrder:
                Inorder(_tree.Root);
                break;

            case TreeTraversalType.PostOrder:
                Postorder(_tree.Root);
                break;
            }
        }
        public void Traverse(TreeTraversalType type, out string traversal)
        {
            traversal = type.ToString() + ":\n";

            switch (type)
            {
            case TreeTraversalType.PreOrder:
                Preorder(StartNode, ref traversal);
                break;

            case TreeTraversalType.InOrder:
                Inorder(StartNode, ref traversal);
                break;

            case TreeTraversalType.PostOrder:
                Postorder(StartNode, ref traversal);
                break;

            case TreeTraversalType.Layerorder:
                Layerorder(StartNode, ref traversal);
                break;
            }
        }
 public void Traverse <T>(TreeTraversalType traversalType, T[] tree)
 {
 }
Ejemplo n.º 11
0
 public BinarySearchTree()
 {
     TraversalType = TreeTraversalType.InOrder;
 }
        public void TraverseAndPrint(TreeTraversalType type)
        {
            string traversal = null;

            Traverse(type, out traversal);
        }
        public IEnumerator <T> GetEnumerator(TreeTraversalType type)
        {
            BSTEnumerator <T> enumerator = new BSTEnumerator <T>(this, type);

            return(enumerator);
        }