/* This program demonstrates how an isomorphism is found between two graphs, using the Moebius graph as an example. This version uses sparse form with dynamic allocation.
*/
/* Label sg1, result in cg1 and labelling in lab1; similarly sg2. It is not necessary to pre-allocate space in cg1 and cg2, but
they have to be initialised as we did above. */
if (aresame_sg(&cg1,&cg2))
{
printf("Isomorphic.\n"); if (n <= 1000)
{ /* Write the isomorphism. For each i, vertex lab1[i] of sg1 maps onto vertex lab2[i] of sg2. We compute
the map in order of labelling because it looks better. */
for (i = 0; i < n; ++i) map[lab1[i]] = lab2[i]; for (i = 0; i < n; ++i) printf(" %d-%d",i,map[i]);
printf("\n");
}
} else
printf("Not isomorphic.\n");
} else break;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.