public interface Node<T> where T : IComparable<T>
{
T GetValue();
Node<T>? Getleft();
Node<T>? GetRight();
}
public class SplayTreeNode<T> : Node<T> where T : IComparable<T>
{
private T data;
private SplayTreeNode<T>? left;
private SplayTreeNode<T>? right;
private SplayTreeNode<T>? parent;
public SplayTreeNode(T value)
{
data = value;
}
public T GetValue()
{
return data;
}
public SplayTreeNode<T>? Getleft()
{
return left;
}
public SplayTreeNode<T>? GetRight()
{
return right;
}
}
public interface Node<T> where T : IComparable<T>
{
T GetValue();
Node<T>? Getleft();
Node<T>? GetRight();
}
public class SplayTreeNode<T> : Node<T> where T : IComparable<T>
{
private T data;
private SplayTreeNode<T>? left;
private SplayTreeNode<T>? right;
private SplayTreeNode<T>? parent;
public SplayTreeNode(T value)
{
data = value;
}
public T GetValue()
{
return data;
}
public SplayTreeNode<T>? Getleft()
{
return left;
}
public SplayTreeNode<T>? GetRight()
{
return right;
}
}