namespace DataStructures.Trees
{
///
/// AVL Tree Node.
///
public class AVLTreeNode : BSTNode where T : System.IComparable
{
private int _height = 0;
public AVLTreeNode() : this(default(T), 0, null, null, null) { }
public AVLTreeNode(T value) : this(value, 0, null, null, null) { }
public AVLTreeNode(T value, int height, AVLTreeNode parent, AVLTreeNode left, AVLTreeNode right)
{
base.Value = value;
Height = height;
Parent = parent;
LeftChild = left;
RightChild = right;
}
public virtual int Height
{
get { return this._height; }
set { this._height = value; }
}
public new AVLTreeNode Parent
{
get { return (AVLTreeNode)base.Parent; }
set { base.Parent = value; }
}
public new AVLTreeNode LeftChild
{
get { return (AVLTreeNode)base.LeftChild; }
set { base.LeftChild = value; }
}
public new AVLTreeNode RightChild
{
get { return (AVLTreeNode)base.RightChild; }
set { base.RightChild = value; }
}
}
}