Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 

README.md

Build status Release NuGet

TreeLib

This project provides a:

  • .Net Standard Library (1.4, 1.6, 2.0) or a
  • .Net framework 4.0 Library

with Generic methods to traverse k-ary trees in different orders (Post-Order, Pre-Order, Level-Order) of traversal. This implementation includes scalable algorithms that return IEnumerable<T> to make parsing large tree structures a piece of cake, as well, as Generic Exception handling to ensure that traversal algorithms complete despite unexpected errors on some nodes.

Review demo projects:

Implementing something as complicated as a Post-Order traversal algorithm requires just:

  • a project reference,
  • a LINQ statement to find each set of children in the tree,
  • and a simple for each loop to implement the operation on each tree node:
Console.WriteLine("(Depth First) PostOrder Tree Traversal V3");
items = TreeLib.Depthfirst.Traverse.PostOrder(root, i => i.Children);

foreach (var item in items)
{
  Console.WriteLine(item.GetPath());
}

This pattern leads to a clear-cut separation of:

  • the traversal algorithm and
  • the operations performed on each tree node (e.g.: Console.WriteLine(item.GetPath());).

The project in this repository contains a demo console project to demo its usage in more detail.

Supported Generic Traversal Methods

Breadth First

Level Order

See TreeLib.BreadthFirst.Traverse.LevelOrder implementation for:

Depth First

PreOrder

See TreeLib.BreadthFirst.Traverse.PreOrder implementation for:

Postorder

See TreeLib.BreadthFirst.Traverse.Postorder implementation for:

Tip

You can’t perform that action at this time.