C/C++ - Implementierung eines Gerichteten Azyklischen Graphen

Als Anfänger, ich m versuchen zu generieren, die eine DAG mit C (oder C++).

struct Node
{
    Link *incomingEdge, *outgoingEdge;
};

struct Link
{

    Node *origin, *destination;

};

einfach in meinem code gibt es nur einen eingehenden und ausgehenden Kanten für jeden Knoten. Aber einen Knoten haben könnte mehrere inzidente Kanten. Außerdem, die Anzahl der inzidenten Kanten ändern könnte für jeden Knoten.

wie kann ich erzeugen unterschiedliche Anzahl von Zeigern für jeden Knoten ?

davon ausgehen, dass ich;

nodeA mit 5 eingehende Kanten und 4 ausgehende Kanten.
nodeB mit 3 eingehende Kanten und 6 ausgehenden Kanten.

so viele Zeiger ändern sich für jeden Knoten.

" wie kann ich generieren unterschiedliche Anzahl von Zeigern für jeden Knoten ?' Was meinst du mit generieren? Fragen Sie, wie zu halten, mehr als einen einzigen Zeiger für die inzidenten Kanten? Dann können Sie so etwas wie std::vector<Link*> incidentEdges;.
Möchten Sie vielleicht zu prüfen, mit einem Nachbarschaft-Liste. Zudem: wenn Sie planen, über die Verwendung einer Struktur eher als ein anderer vielleicht Programmierer.se könnte eine bessere Wahl sein.
gut, ich möchte oft löschen von Knoten und Kanten, und fügen Sie Nachrichten lieben..Das ist der Grund, warum ich nicht wollen, zu prüfen, Nähe listet.
ein Vektor-container wäre schön, aber wenn ich wollen suchen oft durch Vektor -, ist es eine effiziente Art und Weise ?

InformationsquelleAutor zaratushtra | 2014-07-24

Schreibe einen Kommentar