Es ist nicht klar aus Ihrer Frage, aber ich gehe davon aus, dass Sie nach einer Adjazenzlisten-Darstellung eines ungerichteten Graphen gefragt haben.
Der Versuch, so nah wie Ihre ursprüngliche Idee zu sein -
Zuerst definieren eine Struktur, die eine Adjazenzliste Knoten zu repräsentieren -
struct AdjListNode
{
int dest;
struct AdjListNode* next;
};
Dann eine Struktur, die eine Adjazenzliste darzustellen -
struct AdjList
{
struct AdjListNode *head; // pointer to head node of list
};
Dann eine Struktur, um ein Diagramm darzustellen. Hier ist ein Graph eine Reihe von Adjazenzlisten. Die Größe des Arrays ist V (Anzahl der Scheitelpunkte im Diagramm).
struct Graph
{
int V;
struct AdjList* array;
};
Zum besseren Verständnis der verschiedenen Graphdarstellungen gibt es eine Reihe von nützlichen Ressourcen, die Sie googlen können. Hier sind einige -
https://www.khanacademy.org/computing/computer-science/algorithms/graph-representation/a/representing-graphs
http://www.geeksforgeeks.org/graph-and-its-representations/
** Nicht ** 'typedef' einen Zeiger! Dies wird schließlich zu Verwirrung führen. – Olaf
Dies sieht wie eine einfach verknüpfte Liste aus. Was ich denke, zählt als Graph, aber es ist irgendwie degeneriert. – EOF
Es ist nicht klar, was Sie fragen. Es gibt mehr als eine Möglichkeit, ein Diagramm in C zu definieren (wie bei jeder anderen Sprache). Ohne zu wissen, was Ihre Absicht war, ist es unmöglich zu sagen, ob Sie erfolgreich waren oder nicht. – trentcl