Program defines the three member functions
for manipulating the subtrees of an N-ary tree.
The Subtree member function takes as its lone argument
an unsigned int, i, which must be between 0 and N-1.
It returns a reference to the
subtree of the given tree.
Note that this operation is only defined for a non-empty N-ary tree.
Given that the tree is not empty,
the running time is O(1).
Program: NaryTree Class Member Function Definitions
The AttachSubtree member function takes two arguments.
The first is an unsigned integer i between 0 and N-1.
The second is a reference to a NaryTree instance.
The purpose of this routine is to make the N-ary tree specified
by the second argument become the subtree of the given tree.
It is only possible to attach a subtree to a non-empty node and
it is only possible to attach a subtree
in a place of occupied by an empty subtree.
If none of the exceptions are thrown,
the running time of this function is simply O(1).
The DetachSubtree member function takes a single argument i
which is an unsigned integer between 0 and N-1.
This routine removes the subtree from a given N-ary
tree and returns a reference to that subtree.
Of course, it is only possible to remove a subtree from a non-empty tree.
Since every non-empty node must have N subtrees,
when a subtree is removed it is replaced by an empty tree.
Clearly, the running time is O(1) if we assume that no exceptions are thrown.