コード例 #1
0
 private static void VisitPreorder(DsalBinaryTreeNode nodeToVisit, List<int> traversedList)
 {
     if (nodeToVisit == null) return;
     traversedList.Add(nodeToVisit.Data);
     VisitPreorder(nodeToVisit.Left, traversedList);
     VisitPreorder(nodeToVisit.Right, traversedList);
 }
コード例 #2
0
ファイル: AddItem.cs プロジェクト: sanjaysingh/Dsal
 public static DsalBinarySearchTree AddItem(this DsalBinarySearchTree bst, int itemToAdd)
 {
     DsalBinaryTreeNode nodeToAdd = new DsalBinaryTreeNode() { Data = itemToAdd };
     if (bst.Root == null)
     {
         bst.Root = nodeToAdd;
     }
     else
     {
         AddNode(nodeToAdd, bst.Root);
     }
     return bst;
 }
コード例 #3
0
ファイル: FindItem.cs プロジェクト: sanjaysingh/Dsal
 private static BinaryTreeNodeWithParent Find(int value, 
                                                 DsalBinaryTreeNode searchingNode, 
                                                 DsalBinaryTreeNode searchingNodeParent)
 {
     if (searchingNode == null) return new BinaryTreeNodeWithParent();
     if (searchingNode.Data == value)
     {
         var searchResultNode = new BinaryTreeNodeWithParent();
         searchResultNode.Node = searchingNode;
         searchResultNode.Parent = searchingNodeParent;
         return searchResultNode;
     }
     else if (value < searchingNode.Data)
     {
         return Find(value, searchingNode.Left, searchingNode);
     }
     else
     {
         return Find(value, searchingNode.Right, searchingNode);
     }
 }
コード例 #4
0
ファイル: AddItem.cs プロジェクト: sanjaysingh/Dsal
        private static void AddNode(DsalBinaryTreeNode nodeToAdd, DsalBinaryTreeNode addToNode)
        {
            if (nodeToAdd.Data < addToNode.Data)
            {
                if (addToNode.Left == null)
                {
                    addToNode.Left = nodeToAdd;
                }
                else AddNode(nodeToAdd, addToNode.Left);

            }
            else
            {
                if (addToNode.Right == null)
                {
                    addToNode.Right = nodeToAdd;
                }
                else
                {
                    AddNode(nodeToAdd, addToNode.Right);
                }
            }
        }