using
System;
public
class
GFG{
class
Node {
public
int
data;
public
Node []children;
public
int
length;
public
Node()
{
length = 0;
data = 0;
}
public
Node(
int
n,
int
data_)
{
children =
new
Node[n];
length = n;
data = data_;
}
};
static
int
sumReplacementNary(Node node)
{
if
(node ==
null
)
return
0;
int
total = node.length;
for
(
int
i = 0; i < total; i++)
node.data += sumReplacementNary(node.children[i]);
return
node.data;
}
static
void
preorderTraversal(Node node)
{
if
(node ==
null
)
return
;
int
total = node.length;
Console.Write(node.data+
" "
);
for
(
int
i = 0; i < total - 1; i++)
preorderTraversal(node.children[i]);
preorderTraversal(node.children[total - 1]);
}
public
static
void
Main(String[] args)
{
int
N = 3;
Node root =
new
Node(N, 1);
root.children[0] =
new
Node(N, 2);
root.children[1] =
new
Node(N, 3);
root.children[2] =
new
Node(N, 4);
root.children[0].children[0] =
new
Node(N, 5);
root.children[0].children[1] =
new
Node(N, 6);
root.children[0].children[2] =
new
Node(N, 7);
Console.Write(
"Initial Pre-order Traversal: "
);
preorderTraversal(root);
Console.WriteLine();
Console.Write(
"Final Pre-order Traversal: "
);
sumReplacementNary(root);
preorderTraversal(root);
}
}