Also ein Array hat ja eine festgelegte Anzahl von Werten vom index 0 bis index n-1.Aufgabe 5 (Queue)
In der Vorlesung haben wir eine Queue mit Hilfe eines Arrays realisiert.
Überlegen Sie sich, wie man eine Queue mit Hilfe einer Liste realisieren kann.
Schreiben Sie Prozeduren in Pseudocode, um die Operationen enqueue ( ) und
dequeue ( ) einer Queue zu beschreiben. Benutzen Sie dazu die Operationen
insert ( ) und delete ( ) der erweiterten Liste (Bezeichnung extended_list) aus
Aufgabe 3.
Was ist denn der Unterschied zur Liste ?
Also bei der Queue ist es ja so, dass wenn ein Element hinzukommt, kann das nur ans Ende drangehangen werden. Und nur das erste Element kann die Queue verlassen, dabei rücken dann alle anderen Elemente ein Platz nach links.
Ich weiß nur nicht, wie ich für das Aufrücken einen Algorithmus schreiben kann bei einer Liste ? Wie sieht eine Liste überhaupt aus ? Also haben die Elemente einer Liste einen Index usw. ?
-
23.11.2011, 22:38 #1Lt. Junior Grade
- Dabei seit
- Dez 2010
- Beiträge
- 271
Übungsaufgaben aus "Algorithmen und Datenstrukturen"
- Anzeige
Logge dich ein, um diese Anzeige nicht zu sehen. -
23.11.2011, 22:48 #2
AW: Übungsaufgaben aus "Algorithmen und Datenstrukturen"
Google? Naja eigentlich gegen die Regeln aber ich bin mal so nett: Bei einer Liste kannst du
a) auch komplexere Typen speichern (Array nur Grundtypen soweit ich mich erinnere)
b) du kannst gezielt einzelne Einträge löschen und der Rest "rückt nach"
c) du kannst sofort von einem Element auf das nächste schliessen (die sind "verkettet")
uvm google & wikipedia ist dein freund.
inb4 closeShagga: How would you like to die, Tyrion, son of Tywin?
Tyrion: In my own bed, at the age of 80, with a belly full of wine and a girl's mouth around my c**k?
Game of Thrones
-
23.11.2011, 22:49 #3Lieutenant
- Dabei seit
- Mär 2008
- Beiträge
- 596
AW: Übungsaufgaben aus "Algorithmen und Datenstrukturen"
hey,
vermutlich geht es um eine einfach verkettete liste? dann siehts so aus:
in einer liste gibt es keinen index. jedes element hat einen zeiger, der auf das nächstfolgende element zeigt.
beispiel:
a zeigt auf b, b zeigt auf c, c zeigt auf d
um ein element einzuhängen: a zeigt auf b, b zeigt auf x, x zeigt auf c
um ein element zu entfernen: a zeigt auf b, b zeigt auf d
du musst also den zeiger eines elements, der auf das nächste element zeigt, immer entsprechend anpassen.
hoffe das war verständlich, AuD ist schon ein paar jährchen her bei mir
.
-
23.11.2011, 22:52 #4Lt. Junior Grade
Ersteller dieses Themas
- Dabei seit
- Dez 2010
- Beiträge
- 271
AW: Übungsaufgaben aus "Algorithmen und Datenstrukturen"
Ah okay verstehe, nur eine Sache noch: wie schreib ich das im Pseudocode, wenn ich den Zeiger eines Elements anpassen will ?
-
23.11.2011, 22:52 #5
AW: Übungsaufgaben aus "Algorithmen und Datenstrukturen"
Ich tippe auf ne verkettete Liste, google das mal. Ist aber n bisl naja fies, wer von sowas nie gehört hat kann ohne zu wissen was ne verkettete Liste is nicht oder nur schwer draufkommen.
Zum grübeln is die aufgabe aber gut^^
E: okay zu lahm...
Pseudocode: schreib einfach hin was du machst, z.b. "zeiger auf a mit zeiger auf b überschreiben" und bei ner schleife halt while das tue jenes, da gibts keine Syntax es sollte einfach nachvollziehbar sein. Schön an Pseudocode ist, dasses ansich die ganze Arbeit erledigt, danach kann mans in jede gewünschte Syntax schreiben solange die Sprachen nicht grundsätzlich verschieden aufgebaut sind.Geändert von ~purplet~ (23.11.2011 um 22:55 Uhr)
-
23.11.2011, 22:56 #6Cadet 3rd Year
- Dabei seit
- Mär 2011
- Beiträge
- 38
AW: Übungsaufgaben aus "Algorithmen und Datenstrukturen"
eigentlich ganz einfach:
struct kette{
struct kette *pnext;
#irgendwelche variablen
};
das letzte element zeigt immer auf NULL/0
jetzt erzeugst du mit dynamischer speicherverwaltung z. b. new ein neues element.. indem im zeiger NULL/0 steht.. in dem vorherigen element wo gerade noch NULL/0 drinsteht hängst du den Pointer auf das neu erzeuge elemnt.. jetzt kannst du die kette solange durchlaufen bis NULL/0 zurückgegeben wird, weas das ende der verketteten liste angibt.. fertig ist die einfach verkettete liste
-
23.11.2011, 22:58 #7
AW: Übungsaufgaben aus "Algorithmen und Datenstrukturen"
Queue mit Hilfe einer Liste: 2.1
so will ich auch mal meine Hausaufgaben machen können
System:
Intel i7 2600k -- Asus P8P67 -- Mugen 2 -- ATI 6950 flashed -- G.Skill RipJaws 8GB 10667U -- Crucial C300 128GB -- WD 1TB Blue -- Tempest Evo -- Love -- Superflower 80+ Gold 600W -- Razer Copperhead -- ♥DasKeyboard Silence♥
-
23.11.2011, 22:58 #8Cadet 3rd Year
- Dabei seit
- Mär 2011
- Beiträge
- 38
AW: Übungsaufgaben aus "Algorithmen und Datenstrukturen"
http://de.wikipedia.org/wiki/Liste_%28Datenstruktur%29 gibts sogar bei wikipedia
-
23.11.2011, 23:09 #9Lt. Junior Grade
Ersteller dieses Themas
- Dabei seit
- Dez 2010
- Beiträge
- 271
AW: Übungsaufgaben aus "Algorithmen und Datenstrukturen"
Danke, hat mir alles gut geholfen
-
24.11.2011, 13:38 #10
AW: Übungsaufgaben aus "Algorithmen und Datenstrukturen"
Vermutlich sind einfach verkettete Listen gemeint, aber es wäre wohl eigentlich (wenn erlaubt) besser doppelt verkettete zu nehmen, brauchen zwar etwas mehr Speicher, allerdings kann man auch auf das letzte Element direkt zugreifen, was enqueue schneller macht.
PS: eigentlich ist das hier ja kein Hausaufgabenforum
Windows 8 @ ThinkPad X220 | MacOS X Lion @ MacBook ProArchLinux, Windows 8 @ i7 2600, HD6950@70, 16GB RAM
-
24.11.2011, 13:41 #11Captain
- Dabei seit
- Nov 2008
- Beiträge
- 3.427
AW: Übungsaufgaben aus "Algorithmen und Datenstrukturen"
Auch einfach verkettete Listen können eine Referenz auf das letzte Element haben

Und oftmals haben die Implementierungen auch neben dem first einen last Zeiger. Eine verkettete Liste wäre hier also wirklich nur viel mehr Arbeit.

Zitieren