54 lines
1.1 KiB
C#
54 lines
1.1 KiB
C#
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Text;
|
|
|
|
namespace StgSharp
|
|
{
|
|
public interface INode<T> where T : INode<T>
|
|
{
|
|
internal ContainerNode<T> ID { get; }
|
|
|
|
internal void setID<T>(ContainerNode<T> id) where T : INode<T>;
|
|
}
|
|
|
|
|
|
public class ContainerNode<T> where T : INode<T>
|
|
{
|
|
internal readonly T _value;
|
|
internal ContainerNode<T> _previous;
|
|
internal ContainerNode<T> _next;
|
|
internal ContainerNode<T> _side;
|
|
|
|
public ContainerNode(T t)
|
|
{
|
|
_value = t;
|
|
t.setID<T>(this);
|
|
}
|
|
|
|
public virtual ContainerNode<T> Previous
|
|
{
|
|
get { return _previous; }
|
|
set { _previous = value; }
|
|
}
|
|
|
|
public ContainerNode<T> Next
|
|
{
|
|
get { return _next; }
|
|
set { _next = value; }
|
|
}
|
|
|
|
public ContainerNode<T> Side
|
|
{
|
|
get { return _side; }
|
|
set { _side = value; }
|
|
}
|
|
|
|
public T Value
|
|
{
|
|
get { return _value; }
|
|
}
|
|
|
|
}
|
|
}
|