FIFO auf dem Heap
-
Hallo,
mich bewegt eine Unschönheit, bei der ich mich frage, ob es da elegantere Lösungen gibt:
Ich lege nacheinander über Pointerlisten structs auf dem Heap an. Sobald die bearbeitet sind, kann man sie wegwerfen. realloc() hat jedoch die Eigenschaft, sich nur um das "hintere" Ende der Liste zu bemühen, man arbeitet nach dem LIFO- Prinzip. Sinnvoller wäre es aber, mit dem ersten Element zu beginnen, da es schon am längsten im Speicher schmort.
Eine "deep copy" über ein paar hundert Elemente, um alle eins nach "vorne" zu schieben und dann erst das Ende zu kappen, kostet zuviel Rechenzeit.
Wie geht man da ran, eine dynamische FIFO- Struktur auf dem Heap anzulegen ohne Buße bei der Ausführungszeit? Hat da jemand einen Fingerzeig oder Link?
Danke vorab
-
bau doch eine single linked list.
du merkst dir den last und first zeiger und kannst dann super am ende einfuegen und am anfang loeschen.
ein array ist bei vorne loeschen eben sau lahm.
brauchst du denn den random access? das wuerde die sache etwas komplizierter machen...
-
Shade Of Mine schrieb:
bau doch eine single linked list.
du merkst dir den last und first zeiger und kannst dann super am ende einfuegen und am anfang loeschen.
ein array ist bei vorne loeschen eben sau lahm.
brauchst du denn den random access? das wuerde die sache etwas komplizierter machen...
Ah ja, das erste Element enthält den Zeiger auf das nächste Element usw.
Klar, dann kann man problemlos vorne killen und hinten neu anlegen. Random brauche ich nicht, so bau' ich's.
Danke für den Tip
-
pointercrash() schrieb:
Hallo,
mich bewegt eine Unschönheit, bei der ich mich frage, ob es da elegantere Lösungen gibt:
Welch erfrischende Abwechslung zu all den "Hi hab da eni Prohblem!!!!"