![]() |
Frage zum Löschen im Ringspeicher
Hallo,
ich soll einen Priority-Queue mit Hilfe eines Ringspeichers implementieren. Das macht mir soweit auch keine Probleme, bis auf die Prozedur Remove, die das Element mit der höchsten Priorität aus dem Queue löscht. Da das ganze ja auf einem statischen Array basiert, hätte ich ja dann ein Speicherplatz, der mitten im Array liegt und sich schlecht verwalten lässt. Mein Ansatz wäre es jetzt, die dahinter liegenden Elemente einen Platz vorrücken zu lassen, was aber bei einem längeren Queue vllt nicht mehr die beste Idee ist. Hat jemand vllt noch einen anderen Ansatz? Google und Wikipedia haben mir leider nichts verraten können. Danke. |
Re: Frage zum Löschen im Ringspeicher
Du solltest vielleicht statt eines statischen arrays eine Klasse verwenden wie:
TList TStringList TObjectList |
Re: Frage zum Löschen im Ringspeicher
Zitat:
|
Re: Frage zum Löschen im Ringspeicher
Hmm, na dann bleibt dir ja nur das Verschieben. oder du kopierst das letzte Element in die Lücke, falls das nichts durcheinander bringt.
Edit: Das dürfte ja nicht gehen, wie sieht denn ein array-element aus? |
Re: Frage zum Löschen im Ringspeicher
Moin, moin,
bei der geforderten Struktur würde ich den Eintrag als gelöscht markieren und an seinem Platz belassen. Grüße // Martin |
Re: Frage zum Löschen im Ringspeicher
Zitat:
|
Re: Frage zum Löschen im Ringspeicher
Lasss das mit dem Drüberspeichern! Der Eintrag ist sozusagen nil. Wenn eine gewisse Anzahl Einträge leer sind, dann könnte man die Queue nachrücken lassen. Es lohnt halt nicht für einen Eintrag, wie Du schon selbst dargestellt hast.
Grüße // Martin |
Re: Frage zum Löschen im Ringspeicher
Liste der Anhänge anzeigen (Anzahl: 1)
ich hab das jetzt gemacht, wie ich im ersten post beschrieben hab, die dateien sind im anhang, falls es jemanden interessiert.
|
Re: Frage zum Löschen im Ringspeicher
OT: Ich weiß nicht wer dir die Anweisungen gegeben hat, aber das ist ziemlich unprofessionell. Sowas wäre deutlich schöner mit verketteten Listen zu lösen. :duck:
|
Re: Frage zum Löschen im Ringspeicher
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz