public class BinaryTreeNode
{
public BinaryTreeNode Left { get; set; }
public BinaryTreeNode Right { get; set; }
public int Data { get; set; }
public BinaryTreeNode(int data)
{
this.Data = data;
}
}
public void InsertIntoBST(BinaryTreeNode root, int data)
{
BinaryTreeNode _newNode = new BinaryTreeNode(data);
BinaryTreeNode _current = root;
BinaryTreeNode _previous = _current;
while (_current != null)
{
if (data < _current.Data)
{
_previous = _current;
_current = _current.Left;
}
else if (data > _current.Data)
{
_previous = _current;
_current = _current.Right;
}
}
if (data < _previous.Data)
_previous.Left = _newNode;
else
_previous.Right = _newNode;
}
ログイン後にコピー