Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!
Werbeanzeige
Zitat von »"David_pb"«
Wenn dich verlinkte Listen interessieren und du gern selbst eine implementieren willst: Das Prinzip ist das jeder Listeneintrag einen Zeiger auf den nächsten (und evtl verherigen) Eintrag besitzt. So kann man z.B. sehr schnell Listeneinträge löschen, indem man nämlich einfach die Zeiger ändert.
Der Vorteil gegenüber normalen Arrays ist, das der Aufwand hierbei sehr viel weniger komplex ist.
grüße
Zitat von »"Faule Socke"«
Zitat von »"David_pb"«
Wenn dich verlinkte Listen interessieren und du gern selbst eine implementieren willst: Das Prinzip ist das jeder Listeneintrag einen Zeiger auf den nächsten (und evtl verherigen) Eintrag besitzt. So kann man z.B. sehr schnell Listeneinträge löschen, indem man nämlich einfach die Zeiger ändert.
Der Vorteil gegenüber normalen Arrays ist, das der Aufwand hierbei sehr viel weniger komplex ist.
grüße
So wie dot das da oben präsetiert hat klingen listen nach der lösung all meiner probleme! Also interessiere ich mich dafür! Allerdings klingt es für mich nach einem speicherleg wenn du zb einen eintrag löschen willst setzt du einfach den zeiger des vorherigen eintrages(der auf den nächsten zeigen soll) auf den nächsten eintrag und den zeiger des nächsten eintrages(der auf den vorherigen zeigen soll) auf den vorherigen eintrag! damit bleibt aber in der mitte ein eintrag auf den kein zeiger mehr zeigt! Dazu habe ich mal das paint bemüht:
Einen Eintrag löschen(rechtsklick für Download)
mfg,
Faule Socke
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
template <typename Type> class ListItem { public: Type actual; ListItem<Type> *prev, *next; }; template <typename Type> class List { private: ListItem<Type> *_first, *_last; public: // verwaltung der Liste }; |
Administrator
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
template< typename T > class LinkedList { private: LinkedList* head; LinkedList* prev; LinkedList* next; T* content; public: LinkedList(); ~LinkedList(); void Insert( ... ); // ... }; |
Zitat von »"grek40"«
Was ist da nicht dynamisch, wenn man für jedes Element eine neue Variable erstellt?
Zitat
wenn ich jedes mal eine neue Variable erstellen muss kann das ganze nicht vollautomatisch ablaufen, da mir die namen für die variablen ja irgendwann ausgehen....
Werbeanzeige