private void FillCongenericChains()
{
var occurrences = new List<int>[alphabet.Cardinality - 1];
for (int i = 0; i < alphabet.Cardinality - 1; i++)
{
occurrences[i] = new List<int>();
}
for (int j = 0; j < building.Length; j++)
{
if (building[j] != 0)
{
occurrences[building[j] - 1].Add(j);
}
}
congenericChains = new CongenericChain[alphabet.Cardinality - 1];
for (int k = 0; k < alphabet.Cardinality - 1; k++)
{
congenericChains[k] = new CongenericChain(occurrences[k], alphabet[k + 1], building.Length);
}
}