Problem Lösung in C++?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Da fehlt nur noch die Methode add():

void add ( int ID )
{
  /* 
  die Konstante 100 sollte in der Klasse als enum definiert werden: enum { Queue_Size = 100 };
  */
  if ( size >= 100) 
  {
   cout << "queue is full" << endl;
   return;
  }
  
  queue[size++] = ID;
}

Elene195 
Fragesteller
 04.01.2024, 16:52

Vielen Dank! Das funktioniert! :)

0

Du musst mehr als eine Zeile schreiben. Da fehlt die gesamt Prozedur ADD!

fang am Besten an mit:

void ADD (neuerWert: int) {

dann auf Queue voll (size = 100) prüfen

entweder Warnmeldung ausgeben

oder

alles um einen Platz nach hinten schieben, den neuen Wert auf Platz 1 eintragen und size um eins erhöhen

fertig

Den code selbst bekommst du schon hin, du kannst ja die Prozedur REMOVE als Vorlage nehmen.

btw.

das ist eine selten Blöde Implementierung einer Queue, die einen Haufen Rechenzeit mit umkopieren verschwendet. Besser ist es, den Anfang der Queue als eine Pointer auf ein Element des Arrays zu definieren und wandern zu lassen. Noch besser wäre es, die Queue als eine verkettete Liste zu implementieren, dann wäre die Länge nur durch die Größe des HEAP also durch den auf der Maschine vorhandenen Speicher begrenzt.

EDIT Rechtschreibfehler beseitigt