public void Clear()
{
this.History = new List<int>();
this.TreeSize = 1;
this.Context = new List<int>();
//this.nodes is still full, but is considered free and will be overwritten
this.FreeIndices.Clear();
FirstFreeIndex = 0;
this.RootI = CreateNewNode();
}