+1 Daumen
3,2k Aufrufe

Ich soll eine Queue als Pseudocode implementieren, die genau ein Feld der Größe maxN und genau eine zusätzliche Variable hat.

Ich weiß absolut nicht, wie das funktioniert. Wenn mir jemand grob erklären könnte, wie es geht wäre ich sehr dankbar :)

Avatar von

1 Antwort

+2 Daumen

Habt ihr Vorgaben bekommen, wie dieser Pseudocode auszusehen hat? Für gewöhnlich vertritt da jeder eine andere Meinung.

Üblicherweise gehören zu einer Queue verschiedene Methoden. Weißt Du denn, was eine Queue macht bzw. was das ist?

https://www.youtube.com/watch?v=iMs2Fq8O9T4

Meiner Ansicht nach brauchst Du:

is_full() Prüft, ob die Queue voll ist.

is_empty() Prüft, ob die Queue leer ist.

peek() Liest das Element ganz vorne aus der Queue aus.

enqueue() Fügt ein Element der Queue hinzu.

dequeue() Entfernt ein Element aus der Queue

Diese Methoden beschreibst Du dann unter Nutzung Deines definierten Felds und der zusätzlich nutzbaren Variable (hier musst Du entscheiden, was Du da reinpackst ... ich würde Dir z. B. die (aktuelle) Länge der Queue empfehlen).

Avatar von

ich versehe immer noch nicht ,wie wir eine Queue mit  einem Feld der Größe max N und genau einer zusätzlichen Variabel implementieren ..!

könntest du bitte mehr erklären ! hier stehen alle Operationen , die wir ausführen müssen ..Capture0.png

In dem Feld der Länge max N speicherst Du die Einträge (relevant für put und get). In der zusätzlichen Variable erfasst Du die Anzahl der Elemente n in dem Feld.

isEmpty -> Prüfe, ob n=0

put(T x) -> Prüfe, ob n=N -> Falls ja, wird nichts hinzugefügt; falls nein, trage x an der Stelle n+1 ein.

T get() -> Sollte mit meinen Erklärungen zu isEmpty und put kein Problem mehr sein :)

Danke für deine Erklärung ,ich verstehe alle Operationen ,aber immer noch nicht wie ich diese Operationen implementieren bzw umsetzen mit einem Feld .!

also soll ich  ein Beispiel geben oder ..also wie kann ich die Qeueu mit einem Feld und einer zusätzlichen Variabel umsetzen .. ? das meinte ich ..

Das beschreibe ich doch oben. Die konkrete Implementierung ist Dein Job ;) Feld = Inhalt der Queue, zusätzliche Variable = Anzahl der Elemente in der Queue.

so habe ich die gemacht , keine Ahnung , ob ich die verkackt habe ;)..!!

richtig oder ?IMG-6093.JPG

Bei isEmpty gehe ich mit Dir d'accord (den Pseudocode-Stil dürft ihr euch aber aussuchen, oder?). Wieso gibst Du bei put eine konkrete Zahl mit? Verwende allgemein den Variablennamen aus der Methodensignatur. Wieso gibst Du s konkret an? Verwende die allgemeine Schreibweise (kommt Dir bei get ebenfalls zugute). Habt ihr die "Underflow-Exeption" vorgegeben bekommen?

 für underflow - Exception Allgemein haben wir das in der Vorlesung bekommen .

ich habe alles korrekiert was du mir gesagt hat :) Danke ..Unbenannt.png

aber was für diese Frage .. was der Unterschied zwischen den beiden ?

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community