0 Daumen
456 Aufrufe

Schreiben Sie einen Algorithmus in Pseudocode der nur mithilfe von Queues
feststellt, ob die ubergebenen Worte a und b Anagramme zueinander sind.
Der Algorithmus bekommt folgende Parameter mit Ubergeben ¨ Algorithmus(Queue
a, Queue b), wobei Queue a und Queue b jeweils die Buchstaben der Worter ent- ¨
halten. Ein Anagramm zu dem Wort Ampel ware z.B. ¨ Palme oder Lampe. Beschreiben Sie zudem kurz, wie Ihr Algorithmus arbeitet.
Buchstaben (char) konnen mit den ’ ¨ ==’, ’! =’, ’<’ und ’>’ bzw. ’≤’ und ’≥’ Operatoren verglichen werden.
Also wurde z.B. A ¨ ≤ B: true zuruckgeben.

Wie kann man ein Algorithmus der nur mithilfe von Queues feststellt schreiben

Ich bin mir irgendwie total unschlüssig, wie ich an die Sache heran gehen soll.

Wäre cool, wenn mir jemand helfen könnte :)

Avatar von

1 Antwort

+1 Daumen
 
Beste Antwort

Hallo sniiper,

Ich unterstelle zunächst mal, dass eine Queue folgende Methoden hat:

front() - liefert eine Kopie des ersten anstehenden Elements aus der Queue

pop() - löscht dieses Element

push(...) - hängt ein neues Element 'hinten' in die Queue ein

size() - liefert die Anzahl der Elemente in der Queue

Im Prinzip könnte das dann so aussehen.

1. Abfrage ob a.size() = b.size() ist. Falls nein, kann man die Unterfunktion sofort mit 'false' verlassen

2. Schleife, solange a.size() > 0 ist.

3.      Schleife über alle Elemente (size() mal) der Queue b

4.           wenn a.front() = b.front() dann a.pop(), b.pop() und weiter bei 2.)

4a.         b.push(b.front())

4b.         b.pop()

5.      wenn Schleife bei 3) durch ist, verlasse die Funktion mit 'false'

6. wenn a.size() = 0 (siehe 2.), dann verlasse die Funktion mit 'true'

... falls Du dazu noch Fragen hast, so melde Dich bitte.

Gruß Werner

Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community