AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zum Löschen im Ringspeicher

Ein Thema von fwsp · begonnen am 8. Jan 2007 · letzter Beitrag vom 8. Jan 2007
Antwort Antwort
Seite 1 von 2  1 2      
fwsp
(Gast)

n/a Beiträge
 
#1

Frage zum Löschen im Ringspeicher

  Alt 8. Jan 2007, 16:22
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.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Frage zum Löschen im Ringspeicher

  Alt 8. Jan 2007, 16:26
Du solltest vielleicht statt eines statischen arrays eine Klasse verwenden wie:
TList
TStringList
TObjectList
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#3

Re: Frage zum Löschen im Ringspeicher

  Alt 8. Jan 2007, 16:27
Zitat von sirius:
Du solltest vielleicht statt eines statischen arrays eine Klasse verwenden wie:
TList
TStringList
TObjectList
das liegt nicht in meiner hand. es soll auf einem statischen array basieren.
  Mit Zitat antworten Zitat
Benutzerbild von sirius
sirius

Registriert seit: 3. Jan 2007
Ort: Dresden
3.443 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Frage zum Löschen im Ringspeicher

  Alt 8. Jan 2007, 16:34
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?
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#5

Re: Frage zum Löschen im Ringspeicher

  Alt 8. Jan 2007, 16:35
Moin, moin,

bei der geforderten Struktur würde ich den Eintrag als gelöscht markieren und an seinem Platz belassen.

Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#6

Re: Frage zum Löschen im Ringspeicher

  Alt 8. Jan 2007, 16:37
Zitat von mschaefer:
Moin, moin,

bei der geforderten Struktur würde ich den Eintrag als gelöscht markieren und an seinem Platz belassen.

Grüße // Martin
und dann drüberspeichern? das würde mir dann doch die reihenfolge zerstören, die ja neben der priorität auch wichtig ist. (FIFO)
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.029 Beiträge
 
Delphi XE3 Enterprise
 
#7

Re: Frage zum Löschen im Ringspeicher

  Alt 8. Jan 2007, 16:42
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
Martin Schaefer
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#8

Re: Frage zum Löschen im Ringspeicher

  Alt 8. Jan 2007, 16:53
ich hab das jetzt gemacht, wie ich im ersten post beschrieben hab, die dateien sind im anhang, falls es jemanden interessiert.
Angehängte Dateien
Dateityp: zip priority-queue_921.zip (23,9 KB, 25x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#9

Re: Frage zum Löschen im Ringspeicher

  Alt 8. Jan 2007, 16:55
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.
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#10

Re: Frage zum Löschen im Ringspeicher

  Alt 8. Jan 2007, 16:56
Zitat von mr47:
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.
kommt drauf an was man bezwecken will. aber um dich zu beruhigen: mein pt prof hat uns das gleiche auch mit verketteten liste aufgegeben.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:13 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz