1. #1
    Lt. Junior Grade
    Dabei seit
    Dez 2010
    Beiträge
    271

    Übungsaufgaben aus "Algorithmen und Datenstrukturen"

    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.
    Also ein Array hat ja eine festgelegte Anzahl von Werten vom index 0 bis index n-1.
    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. ?

  2. Anzeige
    Logge dich ein, um diese Anzeige nicht zu sehen.
  3. #2
    Lieutenant
    Dabei seit
    Aug 2010
    Ort
    Nordrhein-Westfalen
    Beiträge
    867

    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 close
    Shagga: 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

  4. #3
    Lieutenant
    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 .

  5. #4
    Lt. 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 ?

  6. #5
    Captain
    Dabei seit
    Feb 2008
    Beiträge
    3.439

    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)

  7. #6
    Cadet 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

  8. #7
    Commander
    Dabei seit
    Mär 2011
    Beiträge
    2.540

    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♥


  9. #8
    Cadet 3rd Year
    Dabei seit
    Mär 2011
    Beiträge
    38

    AW: Übungsaufgaben aus "Algorithmen und Datenstrukturen"


  10. #9
    Lt. Junior Grade
    Ersteller dieses Themas

    Dabei seit
    Dez 2010
    Beiträge
    271

    AW: Übungsaufgaben aus "Algorithmen und Datenstrukturen"

    Danke, hat mir alles gut geholfen

  11. #10
    Commander
    Dabei seit
    Okt 2006
    Ort
    /etc/sudoers
    Beiträge
    2.988

    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 Pro
    ArchLinux, Windows 8 @ i7 2600, HD6950@70, 16GB RAM

  12. #11
    Captain
    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.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •