C# Binary tree
This project contains a cross platform Binary Tree implementation
You can directly install this library from Nuget. There is package:
PM> Install-Package BinaryTree
Create a new instanse:
var binaryTree = new BinaryTree<int>();
and add elements:
binaryTree.Add(8);
binaryTree.Add(5);
binaryTree.Add(12)
or use collection initializer like : var binaryTree = new BinaryTree<int>() { 8, 5, 12, 3, 7, 10, 15 };
Another way is constructs a BinaryTree, copying the contents of the given collection
IList<int> numbers = new List<int>();
var binaryTree = new BinaryTree<int>(numbers);
Also you can initialize a new instance of the BinaryTree class that is empty and has the specified initial capacity:
var binaryTree = new BinaryTree<int>(10);
By default traversal is set to In-order
You can set the type of traversal in constructor var binaryTree = new BinaryTree<int>(new PostOrderTraversal<int>());
or use property TraversalStrategy
:
var inOrder = new InOrderTraversal<int>();
var preOrder = new PreOrderTraversal<int>();
var postOrder = new PostOrderTraversal<int>();
binaryTree.TraversalStrategy = preOrder;
Available operations:
void Add(T value)
- adds a new element to the treevoid AddRange(IEnumerable<T> collection)
- copying the contents of the given collection to the treeITraversalStrategy<T> TraversalStrategy
-gets or sets type of traversal(Pre-order, In-order, Post-order)int Count
- returns count of elements in treeint Capacity
- gets the number of elements that the BinaryTree can containbool IsReadOnly
- always returnfalse
bool IsFixedSize
- gets a value indicating whether the BinaryTree has a fixed sizebool Contains(T value)
- checks if the tree contains the elementbool Remove(T value)
- remove element from the tree. Returnstrue
if element was removed.void Clear()
- clears treevoid CopyTo(T[] array, int arrayIndex)
- copies all the elements of the tree to the specified one-dimensional array starting at the specified destination array index.IEnumerator<T> GetEnumerator()
- returns numerator of tree
To display all elements of tree, use:
foreach (var item in binaryTree)
{
Console.Write(item + " ");
}
or use extension method:
binaryTree.PrintToConsole();
Time Complexity | Space Complexity | |||||||
Avarage | Worst | Worst | ||||||
Access | Search | Insertion | Deletion | Access | Search | Insertion | Deletion | |
O(log(n)) |
O(log(n)) |
O(log(n)) |
O(log(n)) |
O(n) |
O(n) |
O(n) |
O(n) |
O(n) |
On Windows:
build.ps1
On Linux/Mac:
build.sh
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
This project is licensed under the MIT License - see the LICENSE.md file for details