11.5. Creating an n-ary Tree
Problem
You need a tree that can store a number of child nodes in each of its nodes. A binary tree will work if each node needs to have only two children, but in this case, each node needs to have a fixed number of child nodes greater than two.
Solution
Use the NTree<T> class shown in Example 11-10 to create the root node for the n-ary tree.
Example 11-10. Generic NTree class
using System;
using System.Collections;
using System.Collections.Generic;
public class NTree<T> : IEnumerable<T>
where T : IComparable<T>
{
public NTree()
{
maxChildren = int.MaxValue;
}
public NTree(int maxNumChildren)
{
maxChildren = maxNumChildren;
}
// The root node of the tree
private NTreeNode<T> root = null;
// The maximum number of child nodes that a parent node may contain
private int maxChildren = 0;
public void AddRoot(NTreeNode<T> node)
{
root = node;
}
public int MaxChildren
{
get {return (maxChildren);}
}
}The methods defined in Table 11-5are of particular interest to using an NTree<T> object.
Table 11-5. Members of the NTree<T> class
Member | Description |
|---|---|
| This constructor creates an N NTree(int
where |
| A read-only property to retrieve the maximum number of children any node may have. Its syntax is: int The value this property returns is set in the constructor. |
| Adds a node to ... |
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access