Example #1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
            Node n1 = new Node(1);
            Node n2 = new Node(2);
            Node n3 = new Node(3);
            Node n4 = new Node(4);
            Node n5 = new Node(5);
            Node n6 = new Node(6);

            BinaryTree.Classes.BinaryTree tree = new BinaryTree.Classes.BinaryTree(n1);
            tree.Root.LChild               = n2;
            tree.Root.RChild               = n3;
            tree.Root.LChild.LChild        = n4;
            tree.Root.RChild.RChild        = n5;
            tree.Root.RChild.RChild.LChild = n6;
            Console.WriteLine($"hereee {n2.LChild.Value}");
            List <Node> list = tree.PreOrder(n1);

            foreach (var item in list)
            {
                Console.WriteLine($"foreach {item.Value}");
            }
            for (int i = 0; i < list.Count; i++)
            {
                Console.WriteLine($"{list[i].Value}");
            }
        }
        public void PreOrderTest()
        {
            BinaryTree.Classes.BinaryTree tree = new BinaryTree.Classes.BinaryTree(n1);
            tree.Root.LChild               = n2;
            tree.Root.RChild               = n3;
            tree.Root.LChild.LChild        = n4;
            tree.Root.RChild.RChild        = n5;
            tree.Root.RChild.RChild.LChild = n6;

            List <Node> list = tree.PreOrder(n1);

            Assert.True(list[0].Value == 1);
        }
        public static int FindMaxValue(BinaryTree.Classes.BinaryTree tree)
        {
            int temp = 0;

            List <Node> list = tree.PreOrder(tree.Root);

            foreach (var item in list)
            {
                if (item.Value > temp)
                {
                    temp = item.Value;
                }
            }
            Console.WriteLine($"The max Value in this tree is {temp}");
            return(temp);
        }
        public void CorrectMaxValIsReturnedTest(int highNode, int expected)
        {
            Node n1 = new Node(1);
            Node n2 = new Node(2);
            Node n3 = new Node(3);
            Node n4 = new Node(4);
            Node n5 = new Node(5);
            Node n6 = new Node(6);

            BinaryTree.Classes.BinaryTree tree = new BinaryTree.Classes.BinaryTree(n1);
            tree.Root.LChild               = n2;
            tree.Root.RChild               = n3;
            tree.Root.LChild.LChild        = n4;
            tree.Root.RChild.RChild        = n5;
            tree.Root.RChild.RChild.LChild = n6;
            tree.Root.RChild.RChild.RChild = new Node(highNode);
            List <Node> list = tree.PreOrder(tree.Root);

            Assert.Equal(FindMaxValue(tree), expected);
        }
        /// <summary>
        /// Returns list of common values in two Binary Trees
        /// </summary>
        /// <param name="uno">binary tree 1</param>
        /// <param name="dos">binary tree 2</param>
        /// <returns>list of common vals</returns>
        static public List <int> TreeIntersections(BinaryTree.Classes.BinaryTree uno, BinaryTree.Classes.BinaryTree dos)
        {
            List <int> commonVals = new List <int>();
            Hashtable  table      = new Hashtable();

            foreach (Node node in uno.PreOrder(uno.Root))
            {
                table.Add(node.Value.ToString(), node.Value);
            }

            foreach (Node node in dos.PreOrder(dos.Root))
            {
                if (table.Contains(node.Value.ToString()))
                {
                    commonVals.Add(node.Value);
                }
            }

            return(commonVals);
        }
        public static void FizzBuzzTree(BinaryTree.Classes.BinaryTree tree, Node node)
        {
            List <Node> list = tree.PreOrder(node);

            foreach (var item in list)
            {
                if (item.Value % 15 == 0)
                {
                    Console.WriteLine($"{item.Value}: Fizzbuzz");
                }
                else if (item.Value % 3 == 0)
                {
                    Console.WriteLine($"{item.Value}: Fizz");
                }
                else if (item.Value % 5 == 0)
                {
                    Console.WriteLine($"{item.Value}: Buzz");
                }
                else
                {
                    Console.WriteLine($"{item.Value}");
                }
            }
        }