private void Renumber(int index, int newNumber)
{
// changing group of current node
Elements[index].TaxonNumber = newNumber;
for (int i = 0; i < Connections.Count; i++)
{
// for all connected nodes
if (Connections[i].Connected)
{
if ((Connections[i].FirstElementIndex == index)
&& (Elements[Connections[i].SecondElementIndex].TaxonNumber != newNumber))
{
Renumber(Connections[i].SecondElementIndex, newNumber);
}
else if ((Connections[i].SecondElementIndex == index) &&
(Elements[Connections[i].FirstElementIndex].TaxonNumber != newNumber))
{
Renumber(Connections[i].FirstElementIndex, newNumber);
}
}
}
}