we
Grünschnabel
Dabei seit: 14.04.2009
Beiträge: 1
|
|
Aufgabe
In einem Güterbahnhof befindet sich eine Weiche zu drei Gleisen, die Sackkgasse sind. Auf den Gleisen G und H befinden sich 2 Züge mit Waggons für die Zielbahnhöfe A und B. Gleis I sei leer. Diese Situation hat folgende Abbildung
------------------------------------------ I
----------AAB--------------------------G
---------BABA------------------------H
Betrachten Sie im folgenden G, H und I als Stacks. Auf G und H stehen zwei beliebige Züge aus insgesamt n Waggons für die Zielbahnhöfe A und B. Geben Sie einen Algorithumus an, der diese Züge derart umordnet, dass anschliessend auf G alle Waggons für A und auf H alle Waggons für B stehen. Verwenden Sie ausser Kontrollstrukturen lediglich die Stackoperationen push, pop,top, isEmpty. Bechten Sie das Ihr Algorithmus nicht mehr als 2n Verschiebungen durchführen darf.
Mein Ansatz:
algorithm bahnhof(L;G;H :list) : list;
if isEmpty(L) then return G
else if isEmpty(G) then return H
while(n< 2*n) do
if top(G) = A goto next(G)
if next(G) = B
then push (next(g),top(H)) go to next (H)
while(n<2*n) do
if next(H) = A
push(next(H),top(G)
else go to next(H)
habe ich alle Fäle abgedeckt und gibt es Fehler?
|
|