Пример #1
0
        public NTreeNode Build()
        {
            var root = new NTreeNode
            {
                value  = 2,
                Childs = new List <NTreeNode>
                {
                    new NTreeNode
                    {
                        value = 1
                    },
                    new NTreeNode
                    {
                        value  = 3,
                        Childs = new List <NTreeNode>
                        {
                            new NTreeNode {
                                value = 5
                            },
                            new NTreeNode {
                                value = 34
                            }
                        }
                    },
                }
            };

            return(root);
        }
Пример #2
0
        static int  SumTree(NTreeNode node)
        {
            if (node == null)
            {
                return(0);
            }

            var sum = node.value;

            foreach (var child in node.Childs)
            {
                sum += SumTree(child);
            }
            return(sum);
        }
Пример #3
0
        //static int MaxNtree(NTreeNode node)
        //{
        //    var result = node.value;

        //    foreach (var item in node.Childs)
        //    {
        //    result= NTreeSearchMax(item).value;
        //    }

        //}


        static int NTreeSearchMax(NTreeNode root)
        {
            var result = root.value;

            foreach (var child in root.Childs)
            {
                var maxChild = FindMaxRecursive(child);
                if (result < maxChild)
                {
                    result = maxChild;
                }
            }

            return(result);
        }
Пример #4
0
        static void Print(NTreeNode root)
        {
            if (root == null)
            {
                return;
            }

            Console.WriteLine(root.value);



            foreach (var child in root.Childs)
            {
                Print(child);
            }
        }
Пример #5
0
        private static int FindMaxRecursive(NTreeNode node)
        {
            if (node == null)
            {
                return(int.MinValue);
            }
            var result = node.value;

            foreach (var child in node.Childs)
            {
                var maxChild = FindMaxRecursive(child);
                if (result < maxChild)
                {
                    result = maxChild;
                }
            }

            return(result);
        }