
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
Creating an n-ary Tree
|
657
topLevel.DepthFirstSearch(Two): Two
topLevel.DepthFirstSearch(Three): Three
topLevel.DepthFirstSearch(Four): Four
topLevel.DepthFirstSearch(Five): Five
Breadth First Search:
topLevel.BreadthFirstSearch(One): One
topLevel.BreadthFirstSearch(Two): Two
topLevel.BreadthFirstSearch(Three): Three
topLevel.BreadthFirstSearch(Four): Four
Discussion
An n-ary tree is one that has no limitation on the number of children each parent
node may contain. This is in contrast to the binary tree in Recipe 11.6, in which each
parent node may contain only two children nodes.
NTree<T> is a simple class that contains only a constructor and three public methods.
Through this object, you can create an n-ary tree, set the root node, and obtain the
root node in order to navigate and manipulate the tree. An
NTree<T> object that can
contain at most three children is created in the following manner:
NTree<string> topLevel = new NTree<string>(3);
An NTree<T> object that can contain at most int.MaxValue children, which allows
greater flexibility, is created in the following manner:
NTree<string> topLevel = new NTree<string>( );
The real work is done in the NTreeNodeFactory<T> object and the NTreeNode<U> object,
which is nested in the
NTreeNodeFactory<T> class. The NTreeNodeFactory<T> class is an