• Keine Ergebnisse gefunden

FAKULT TF RINFORMATIK ¨A ¨U

N/A
N/A
Protected

Academic year: 2022

Aktie "FAKULT TF RINFORMATIK ¨A ¨U"

Copied!
13
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)TECHNISCHE UNIVERSITÄT MÜNCHEN. FAKULTÄT FÜR INFORMATIK Lehrstuhl für Physik-basierte Simulation Grundlagen: Algorithmen und Datenstrukturen Prof. Dr.-Ing. Nils Thürey, G. Kohl, L. Prantl, E. Franz. SS 2021 Übungsblatt 11 2021–06–30. Übung: KW 27 (2021–07–05 2021–07–09) Abgabe H: 2021–07–18 (bis 23:59 Uhr) Dieses Blatt enthält zusätzlichen Platz für Nebenrechnungen. Aufgabe 11.1 (P) Baumtraversierung Ein nichtleerer Binärbaum kann (unter anderem) in PreOrder, InOrder und PostOrder traversiert werden. Diese Traversierungen sind wie folgt rekursiv definiert: PreOrder: a) Besuche die Wurzel. b) Traversiere den linken Teilbaum in PreOrder, falls dieser nichtleer ist. c) Traversiere rechten Teilbaum in PreOrder, falls dieser nichtleer ist. InOrder: a) Traversiere den linken Teilbaum in InOrder, falls dieser nichtleer ist. b) Besuche die Wurzel. c) Traversiere den rechten Teilbaum in InOrder, falls dieser nichtleer ist. PostOrder: a) Traversiere den linken Teilbaum in PostOrder, falls dieser nichtleer ist. b) Traversiere den rechten Teilbaum in PostOrder, falls dieser nichtleer ist. c) Besuche die Wurzel. Wir bemerken, dass die Anordnung der Knoten nach PreOrder genau der Anordnung nach der dfs-Nummer entspricht, wenn die Tiefensuche einen linken Teilbaum stets vor dem korrespondierenden rechten Teilbaum besucht. Analog dazu entspricht die Anordnung nach PostOrder genau der Anordnung nach der (dfs-)finish-Nummer. Geben Sie Algorithmen preNext(v) und postNext(v) an, die zu einem Knoten v in einem Binärbaum den in der PreOrder bzw. PostOrder folgenden Knoten w berechnet. Analysieren Sie die asymptotische Worst-Case-Laufzeit Ihres Pseudocodes. Nutzen Sie die folgenden Bäume, um die jeweiligen Traversierungsalgorithmen zu visualisieren..

(2) KNOTEN. 45 6 7 8 9 10 17 12 13 14 15 Inorder 4 3 52 7 6 8 7 11 70 12 9 14 13 15 9 1 PostOrder 453 7 8 6 2 11 12 10 14 1513 Preorder 1 2 3. 1 Malgesehen 2 2 Mal geschen Letzte Mal geschen. 1. 2. 9. 3. 4. 6. 5. 7. 10. 8. 11. 13. 12. 14. 15. public Node preNext ( Node v ) {. v hasleftChild. l return v Leftchild if v hasRightChild return v rightchild. if. Node p. V. q while p.is Roots E g p p p parent if p hasrightchild Dd p rightchild equals a return p rightchild. return null 1. 2. 3. 4. p. 9. Ma 6. 5. 7. 8. 10. 11. 13. 12. 14. 15.

(3) 3 public Node postNext ( Node v ) {. if. v isRoot. return null. Node p parent v if p hasrightchild if p rightchild equals Node c p rightChilde c hasleft Childe. else c return. y. return py. c isleaf. while. if. u. c. alternativ c islaternall c. c. leftChilde. rightChilde. c. return p. Berechnen Sie außerdem die asymptotische Laufzeit, wenn mittels der Operationen preNext(v) und postNext(v) die vollständige PreOrder bzw. PostOrder berechnet wird (also n-maliges Anwenden der Funktion).. Der worst case. von. prenext postNext. insgesant also garantiert in OCR. ist. in. 0. n.

(4) 5 Aufgabe 11.2 (P) ABBaumbaumaßnahmen I Führen Sie auf einem anfangs leeren (2, 3)-Baum die folgenden Operationen aus: insert: [19, 11, 28, 38, 37, 30, 7, 59 ,41] gefolgt von: remove: [7, 37, 59, 41, 11, 19, 30, 38] Hinweis: Zeichnen Sie den Baum nach jedem Schritt. Sie dürfen in Ihrer Zeichnung auf Blattknoten verzichten. Beachten Sie außerdem das Folgende: Beim Aufspalten von Knoten während dem Einfügen wandert das Element am Index bb/2c nach oben. Beim Löschen von Elementen aus inneren Knoten wird üblicherweise versucht, entweder den symmetrischen Vorgänger oder symmetrischen Nachfolger intelligent zu wählen. Für diese Aufgabe soll darauf verzichtet werden. Stattdessen wird stets der symmetrische Vorgänger verwendet. Beim Stehlen von Elementen wird zunächst der linke Nachbar betrachtet. Beim Verschmelzen werden Knoten sofern möglich mit ihrem linken Nachbarn, ansonsten mit dem rechten Nachbarn, vereinigt.. insert 19 insert 11. insert 28. 119T 111. 1511281. LISI TH. 112811. insert 38. LISI TH 112813811. insert 37. FIFTIETH. EMII.TT. 38I.

(5) 6. insert 30. If h insert 7. 81. ÉÉ. Ex. 437. insert 59. iI insert 41. 1371 EMI remove. II. 112811301.1. 11411. LI FEI. 7. HIIIII LI. HI. 11281130.1. FEI. remove 37. 1307. III HII HII i. 114711. HII HII. GISELE In It.

(6) 4. remove. 59. If MI. I. pay. Yverschmelzen. 4 IT. 114711. 112811. remove. Zweites Veuschmelzen. LI MEI. 41. ftp.T HI 112811. remove. 11. 11 113011. Pointer. Ranterleery 1301. Ziehen. 19. MI. remove. 1 EUI. 130 KI. 112811. I. 11. 1191281. 19. II 128 1. remove 30. remove 38. 381. 11281138A 112811. Y. It.

(7) 7 Aufgabe 11.3 (P) Rückblick I: Binomialheaps Führen Sie auf dem folgenden Binomial-Heap nacheinander drei deleteMin-Operationen aus. Zeichnen Sie nach jeder deleteMin-Operation den entstandenen Binomial-Heap. min. 3 7. 4. 7. 2. 5. Grad 0 20 1 Element Wurtel hat O Kinder. 6. GradO 9. 10. Grad2. 11. 8. Grad1. Grad 3 23 8 Element. Wurtel hat 3 Kinder. 1 deleteMin. Zwei Baume mit Grad O E. 60. Baume verschmelzen. Q. 60. G1. Zwei Baume mit Grad 1. 67. I. Baume verschmelzen. so. 8. 68. 67. 62. Zwei Baume mit Grad 2 I. did. I 62. 62. Baume verschmelzen min. odd 63.

(8) 8. 2 deleteMin min. d. 61. 62. GO. 3 deleteMin. 61. 60. 67. GO. Zwei Baume mit Grad O E 60. Baume verschmelzen. Q. GO. 61. Drei Baume mit Grad 1. not 61. 67. 67. I. Fiebig Baume. Baume verschmelzen min_. 1 62. 61.

(9) 9 Aufgabe 11.4 (E) ABBaumbaumaßnahmen II Führen Sie auf einem anfangs leeren (2, 4)-Baum die folgenden Operationen aus: insert: [23, 38, 6, 12, 37, 61, 15] gefolgt von: remove : [12, 6, 37, 38, 23, 61] Hinweis: Zeichnen Sie den Baum nach jedem Schritt. Sie dürfen in Ihrer Zeichnung auf Blattknoten verzichten. Beachten Sie außerdem das Folgende: Beim Aufspalten von Knoten während dem Einfügen wandert das Element am Index bb/2c nach oben. Beim Löschen von Elementen aus inneren Knoten wird üblicherweise versucht, entweder den symmetrischen Vorgänger oder symmetrischen Nachfolger intelligent zu wählen. Für diese Aufgabe soll darauf verzichtet werden. Stattdessen wird stets der symmetrische Vorgänger verwendet. Beim Stehlen von Elementen wird zunächst der linke Nachbar betrachtet. Beim Verschmelzen werden Knoten mit ihrem linken Nachbarn vereinigt. Wenn kein linker Nahchbar vorhanden ist, wird mit dem rechten Nachbarn verschmolzen..

(10) 10.

(11) 11 Aufgabe 11.5 (E) Rückblick II: Sortierverfahren Wir betrachten die Effizienz der Sortierverfahren Bubblesort (BS), Heapsort (HS), Quicksort (QS) und Mergesort (MS). Bubblesort bricht hier sofort ab, wenn nach einem Durchlauf keine Änderung mehr auftritt. Quicksort wählt als Pivot immer das Element ganz links aus. Ordnen Sie diese Sortierverfahren aufsteigend nach ihren Worst-Case-Laufzeiten: Average-Case-Laufzeiten: Best-Case-Laufzeiten: Hinweis: Stellen Sie die Ordnung mit dem Symbol < und dem Symbol = dar. Beispiel: A<B=C<D bedeutet, dass die (asymptotischen) Laufzeiten von B und C gleich sind sowie kürzer als die Laufzeit von D und länger als die Laufzeit von A. (Die effizientesten Verfahren stehen also ganz links.).

(12) 12.

(13) 13 Aufgabe 11.6 (H) BFS und Zusammenhangskomponenten - Diese Aufgabe zählt für den Notenbonus. Sie finden die Aufgabe und weitere wichtige Informationen unter https://artemis.ase. in.tum.de/#/courses/119/exercises/4274. Warten Sie mit Verständnisfragen bitte, bis das Thema in der Vorlesung bzw. in der Übung besprochen wurde. Hier werden sich die meisten Fragen von alleine klären..

(14)

Referenzen

ÄHNLICHE DOKUMENTE

Aim: The aim of the study was to assess the influence of papilla length and position of the interproximal contact space in symmetric and asymmetric situations by comparing

2. Über die Ausgleichung von Zentralsystemen und Dreiecksnetzet; mit direkt gemessenen Seiten schreibt K. Hubeny in einem Beitrag [l], der dieser Arbeit als Gnmdlage dient.

Wenn f und h sehr komplizierte Funktionen sind, für die ein direkter Beweis schwierig ist, kann man einen Zwischenschritt verwenden: Man formuliert eine Funktion g, sodass f n 2

Sei S eine Menge von Operationen, und bezeichne T eine obere Schranke für die Laufzeit einer Operation 2 S diese Laufzeit kann vom aktuellen Zustand des Objekts, auf dem

n = w, dann wird die Methode reallocate aufgerufen, die ein neues Array der Größe n anlegt und alle alten Elemente in das neue Array kopiert.. Anschließend wird das neue

Der Baum T ist ein fast vollständiger Binärbaum, wenn T entweder nur aus der Wurzel besteht oder wenn die ersten t 1 Level gemeinsam einen vollständigen Binärbaum bilden, und

Zeichnen Sie den durch die Operation entstehenden AVL-Baum, und schreiben Sie dazu, ob keine Rotation, ob eine Rotation oder ob eine Doppelrotation durchgeführt wurde... c Führen

4 Aufgabe 12.2 P Dijkstra Führen Sie den Algorithmus von Dijkstra auf dem folgenden Graphen durch, um jeweils einen kürzesten Weg von s zu jedem anderen Knoten zu