Depth First Search - C#
Join the DZone community and get the full member experience.
Join For FreeDepth First Search - C#
public class BinaryTreeNode
{
public BinaryTreeNode Left { get; set; }
public BinaryTreeNode Right { get; set; }
public int Data { get; set; }
}
public class DepthFirstSearch
{
private Stack _searchStack;
private BinaryTreeNode _root;
public DepthFirstSearch(BinaryTreeNode rootNode)
{
_root = rootNode;
_searchStack = new Stack();
}
public bool Search(int data)
{
BinaryTreeNode _current;
_searchStack.Push(_root);
while (_searchStack.Count != 0)
{
_current = _searchStack.Pop();
if (_current.Data == data)
{
return true;
}
else
{
_searchStack.Push(_current.Right);
_searchStack.Push(_current.Left);
}
}
return false;
}
}
Opinions expressed by DZone contributors are their own.
Comments