Exemplo n.º 1
0
        private List <int> GetTraversalRecursively(Node node, BinaryTreeOrderType orderType, List <int> traversalList = null)
        {
            if (traversalList == null)
            {
                traversalList = new List <int> {
                }
            }
            ;

            if (node != null)
            {
                if (orderType == BinaryTreeOrderType.PreOrder)
                {
                    traversalList.Add(node.Data);
                }

                GetTraversalRecursively(node.LeftChildNode, orderType, traversalList);

                if (orderType == BinaryTreeOrderType.InOrder)
                {
                    traversalList.Add(node.Data);
                }

                GetTraversalRecursively(node.RightChildNode, orderType, traversalList);

                if (orderType == BinaryTreeOrderType.PostOrder)
                {
                    traversalList.Add(node.Data);
                }
            }

            return(traversalList);
        }
Exemplo n.º 2
0
        public List <BinaryTreeNode <T> > Traverse(BinaryTreeOrderType type)
        {
            var result = new List <BinaryTreeNode <T> >();

            switch (type)
            {
            case BinaryTreeOrderType.PreOrder:
                TraversePreOrder(Root, result);
                break;

            case BinaryTreeOrderType.InOrder:
                TraverseInOrder(Root, result);
                break;

            case BinaryTreeOrderType.PostOrder:
                TraversePostOrder(Root, result);
                break;
            }

            return(result);
        }