Example #1
0
        public void Print_WhenCalled_PrintByTraversalMode(BTreeTraversalMode mode, string expected)
        {
            //Arrange
            var tree = new BTree <int?>(1);

            tree.Root.Left  = new BTreeNode <int?>(2);
            tree.Root.Right = new BTreeNode <int?>(3);
            Logger.Debug(mode.ToString());

            //Act
            var result = tree.Print(mode);

            Logger.Debug(result);

            //Assert
            Assert.Equal(expected: expected, actual: result);
        }
Example #2
0
        public string Print(BTreeTraversalMode mode = BTreeTraversalMode.InOrder)
        {
            if (Root == null)
            {
                throw new NullReferenceException("no data");
            }

            switch (mode)
            {
            case BTreeTraversalMode.InOrder:
                return(PrintInOrder(Root));

            case BTreeTraversalMode.PreOrder:
                return(PrintPreOrder(Root));

            case BTreeTraversalMode.PostOrder:
                return(PrintPostOrder(Root));

            default:
                throw new ArgumentOutOfRangeException(nameof(mode), mode, null);
            }
        }