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); }
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); }
//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); }
static void Print(NTreeNode root) { if (root == null) { return; } Console.WriteLine(root.value); foreach (var child in root.Childs) { Print(child); } }
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); }