updated tree deletion method
Still not complete but will occasionally delete correctly, seems to have more issues with items near the top of the tree
This commit is contained in:
parent
4b45f5d561
commit
e5b0d1659b
@ -100,9 +100,10 @@ namespace C_.Datastructures.BinaryTree
|
||||
if (node.Value!.CompareTo(parent!.Value) < 0)
|
||||
{//Item being deleted is the left child
|
||||
parent.Left = default;
|
||||
}else{
|
||||
//Item being deleted is the right value
|
||||
parent.Right = default;
|
||||
}
|
||||
//Item being deleted is the right value
|
||||
parent.Right = default;
|
||||
}
|
||||
Count--;
|
||||
return true;
|
||||
@ -214,6 +215,14 @@ namespace C_.Datastructures.BinaryTree
|
||||
return current;
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
private void ReplaceChild(TreeNode<T> parent, TreeNode<T>? replacement){
|
||||
if (parent.Value!.CompareTo(replacement!.Value) < 0)
|
||||
{//Append to left side
|
||||
parent.Left = replacement;
|
||||
}//Append to right side
|
||||
parent.Right = replacement;
|
||||
}
|
||||
}
|
||||
}
|
@ -112,17 +112,16 @@ Console.WriteLine("Hello, World!");
|
||||
|
||||
Tree<int> tree = new Tree<int>();
|
||||
|
||||
tree.Add(4);
|
||||
tree.Add(5);
|
||||
tree.Add(7);
|
||||
tree.Add(6);
|
||||
tree.Add(2);
|
||||
tree.Add(4);
|
||||
tree.Add(3);
|
||||
tree.Add(2);
|
||||
tree.Add(1);
|
||||
tree.Add(8);
|
||||
tree.Add(7);
|
||||
tree.Add(0);
|
||||
|
||||
var x = tree.Delete(1);
|
||||
|
||||
var x = tree.Delete(3);
|
||||
//tree.Delete(5);
|
||||
|
||||
var l = tree.Inorder(null);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user