ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
1993
1993
EMPFEHLEN
-
Hallo Forum!
Ich habe ein Problem: Ich muss eine Adjazenzliste bauen, habe aber keine richtige Ahnung wie ich das anstellen soll!
Wie ich eine einfach verkette Liste erstelle ist mir klar, auch wie ein Array erstellt wird. Aber wie kann ich die beide nun zusammen bringen?
Und wie kann ich dann noch irgendwelche Werte in die Liste eingeben? Hilfe
Bin schon langsam am verzweifeln.
Wenn jemand eine Ahnung hat, wäre ich ihm sehr verbunden und dankbar.MfG s-tandel
Ich danke euch schonmal im Voraus, dass ihr meine meist langen Ausführungen durchlest und euch dann darüber Gedanken macht******!
-
Hallo,
das ist eigentlich nicht weiter schwer. Schau mal hier:
Code :1 2 3 4 5 6 7 8 9 10 11
//Ein Array dessen Elemente aus Neighboulisten bestehen NeigbourList adjazenzliste[ANZAHL_KNOTEN]; //in die Liste werden die Nachbarrn des aktuellen Knoten aufgenommen //wobei der Feldindex dem aktuellen Knoten entspricht adjazenzliste[0].push_back(2); adjazenzliste[0].push_back(5); //Zeige alle Nachbarrn des Knoten 1 an while(NeigbourList* next = adjazenzliste[0].getFirst(); next != NULL; next = next->getNext()){ cout << "Nachbar des Knoten 1: " << next->getElement(); }
Da ich natürlich nicht weiß wie deine Liste ausschaut hab ich mir
die Operationen auf der Liste grad mal so hingeschrieben...
Was sich da anbieten würde wären zwei ineinandergeschachtelte
std::vector, wenn du in C++ programmierst, die erlauben nämlich
wahlfreien Zugriff....
Gruß
RedWingGeändert von RedWing (28.11.05 um 19:33 Uhr)
"I'm not deaf, I'm ignoring you"
----
-
Naja das ist ja nicht schlecht!
Aber kann man nicht irgendwie ein Array anlegen mit
int array[7];
und dann jedem einzelnen Feld des array halt "sagen" das der Inhaltstyp eine Liste ist und nicht wie in meinem Fall ein int-Wert.
So sieht meine Liste aus:
struct Knoten
{
int content;
Knoten * next;
};
Knoten * wurzel = NULL;
Das muss irgendwie mit typedef gehen. Ich weiß das das evtl. umständlich ist, müsste aber so sein.MfG s-tandel
Ich danke euch schonmal im Voraus, dass ihr meine meist langen Ausführungen durchlest und euch dann darüber Gedanken macht******!
-
Also eine Möglichekeit ein Individuelles Array anzulegen wäre sowasund dann jedem einzelnen Feld des array halt "sagen" das der Inhaltstyp eine Liste ist und nicht wie in meinem Fall ein int-Wert.
Code :1 2 3 4 5
int main() { void* test[10]; test[0] = (char*)"test"; }
Nur macht das für mich nicht grad viel Sinn, auch in deinem Fall nicht.
Das oben beschriebene sollte eigentlich schon ganz gut so Funktionieren.
Oder wo liegt konkret dein Problem?
Ein typdef macht da nicht viel Sinn, meiner Ansicht nach...
//Edit: Vielleicht kannst du auch noch die Operationen auf deine
Liste mit angeben.
Gruß
RedWingGeändert von RedWing (28.11.05 um 21:27 Uhr)
"I'm not deaf, I'm ignoring you"
----
Ähnliche Themen
-
Adjazenzliste
Von regillus im Forum Algorithmen & Datenstrukturen mit JavaAntworten: 10Letzter Beitrag: 19.05.09, 21:01





Zitieren
Login






