Grundlagen der Programmierung

Ähnliche Dokumente
Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel

Anwendungsbeispiel MinHeap

Kapitel 12: Induktive

ADS: Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16

Vorlesung Datenstrukturen

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen.

Informatik II Vorlesung am D-BAUG der ETH Zürich

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen

9. Natürliche Suchbäume

5 Bäume. 5.1 Suchbäume. ein geordneter binärer Wurzelbaum. geordnete Schlüsselwertmenge. heißt (schwach) sortiert, g.d.w. gilt:

Einführung in die Informatik 2

Bäume 1. Thomas Röfer

Teil 1: Suchen. Ausgeglichene Bäume B-Bäume Digitale Suchbäume. M.O.Franz, Oktober 2007 Algorithmen und Datenstrukturen - Binärbäume 1-1

Übung Algorithmen und Datenstrukturen

elementare Datenstrukturen

13. Bäume: effektives Suchen und Sortieren

13. Bäume: effektives Suchen und Sortieren

Übung Algorithmen und Datenstrukturen

Datenstrukturen Teil 3. Traversierung und AVL- Bäume. Traversierung. Traversierung. Traversierung

Logische Datenstrukturen

Informatik II Prüfungsvorbereitungskurs

Software Entwicklung 1

Datenstrukturen & Algorithmen

Übung 4: Die generische Klasse AvlBaum in Java 1

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10

Übung Algorithmen und Datenstrukturen

Suchbäume. Suchbäume. Einfügen in Binären Suchbäumen. Suchen in Binären Suchbäumen. Prinzip Suchbaum. Algorithmen und Datenstrukturen

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 17/18. Kapitel 14. Bäume. Bäume 1

Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik

Datenstrukturen. einfach verkettete Liste

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph

Verkettete Datenstrukturen: Bäume

Informatik Abitur Bayern 2017 / II - Lösung

Motivation Binäre Suchbäume

Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion

Komplexität eines Algorithmus, Grössenordnung, Landau-Symbole, Beispiel einer Komplexitätsberechnung (Mergesort) 7. KOMPLEXITÄT

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr.

Informatik II Prüfungsvorbereitungskurs

Software Entwicklung 1

Bäume und der Sequence ADT

Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B3.1 Einführung. B3.2 Verkettete Liste. B3.3 Bäume

ADS 1: Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Tutoraufgabe 1 (Implementierung eines ADTs):

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee

Bäume. Listen und Bäume, Graphen und Bäume, elementare Eigenschaften von Binärbäumen, Implementierung, Generische Baumdurchläufe

Informatik II, SS 2014

Suchstrukturen. Übersicht. 8 Suchstrukturen. Allgemeines. H. Täubig (TUM) GAD SS

Pro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik

Algorithmen und Datenstrukturen 1-5. Seminar -

11. Elementare Datenstrukturen

Transkript:

Grundlagen der Programmierung Algorithmen und Datenstrukturen Die Inhalte der Vorlesung wurden primär auf Basis der angegebenen Literatur erstellt. Darüber hinaus wurden ausgewählte Teile in Abstimmung zur Vorlesung von Prof. Dr.-Ing. Faustmann (ebenfalls FHW Berlin) aufgenommen. 09.01.2012 Prof. Dr. Andreas Schmietendorf 1

Datenstrukturen 09.01.2012 Prof. Dr. Andreas Schmietendorf 2

Motivation Ziele bei der Entwicklung komplexer Datenstrukturen: - Effiziente Speicherung von Daten - Effiziente Suche in gossen Datenbeständen - Nachbildung abstrakter und realer Sachverhalte Komplexe Datenstrukturen - Verkettete Listen (Gegenstück zu den bekannten Feldern) - Bäume (inkl. Binärbäume) - Graphen (gerichtet und ungerichtet) 09.01.2012 Prof. Dr. Andreas Schmietendorf 3

Motivation Sortierte Reihungen (Arrays) - schnelles Suchen von Elementen - Hoher Aufwand des Einfügens - Speicher muss von Beginn an reserviert werden Verkettete Listen - einfaches Einfügen eines Elements - aufwändiger Zugriff auf ein bestimmtes Element - Liste kann dynamisch erweitert werden Bäume - einfaches Wiederauffinden von Elementen - Baum kann dynamisch erweitert werden - Baum muss gute Struktur haben! 09.01.2012 Prof. Dr. Andreas Schmietendorf 4

Verkettete Listen 09.01.2012 Prof. Dr. Andreas Schmietendorf 5

Verkettete Liste Unter einer verketteten Liste versteht man eine lineare und dynamisch erweiterbare Anordnung von Datenelementen. Die einzelnen Elemente einer Liste sind explizit durch Kanten verbunden, die durch Zeiger oder Referenzen ausgedrückt werden. Quelle: Ehses, E.; Victor, F.: Programmiersprachen, in Taschenbuch der Informatik, Fachbuchverlag Leipzig, 3. Auflage, ISBN 3-446-21331-7 DATA LINK DATA LINK DATA LINK DATA null Kopfknoten Schwanzknoten 09.01.2012 Prof. Dr. Andreas Schmietendorf 6

Verkettete Listen Beispiel für eine verkettete Liste in Java: In Java existieren keine explizite Zeiger - In Java ist der Name des Objektes ist gleich mit dessen Adresse - Jeder Knoten besitzt einen Verweis auf das nächste Element der Liste Es soll eine verkettete Liste von Integerwerten aufgebaut werden - Klasse: IntNode Repräsentiert die Knoten der verketteten Liste - Klasse: IntList Implementierung der verketteten Liste - Klasse: IntListTest Test der verketteten Liste Quelle: Sanchez, J.; Canton, M.P.: Java 2 Wochenend Crashkurs, mitip-verlag, ISBN 3-8266-0769-4 09.01.2012 Prof. Dr. Andreas Schmietendorf 7

Verkettete Listen Klasse: IntNode Repräsentiert die Knoten der verketteten Liste: 2 Instanzvariablen - Speichern des eigentlichen Datenelementes (hier ein Integerwert) - Speichern des Verweises auf den nächsten Knoten vom Typ IntNode Konstruktor Belegung der Variablen beim Erzeugen der Instanz - this.data = initialdata; - this.link = initiallink; Methoden von IntNode: - Setzen der Instanzvariablen setdata(..) bzw. setlink(..) - Lesen der Instanzvariablen getdata() bzw. getlink() Quelle: Sanchez, J.; Canton, M.P.: Java 2 Wochenend Crashkurs, mitip-verlag, ISBN 3-8266-0769-4 09.01.2012 Prof. Dr. Andreas Schmietendorf 8

Verkettete Listen Quelle: Sanchez, J.; Canton, M.P.: Java 2 Wochenend Crashkurs, mitip-verlag, ISBN 3-8266-0769-4 09.01.2012 Prof. Dr. Andreas Schmietendorf 9

Verkettete Listen //**** Klasse für einen Knoten der Liste ******* class IntNode { // Invarianten: // 1. Die Integervariable speichert das Datenelement. // 2. Der Verweis ist null für den letzten Knoten, // ansonsten zeigt er auf den nächsten Knoten. private int data; private IntNode link; //**************************** // Konstruktor //**************************** public IntNode(int initialdata, IntNode initiallink) { this.data = initialdata; this.link = initiallink; } 09.01.2012 Prof. Dr. Andreas Schmietendorf 10

Verkettete Listen // Zugriffs- und Manipulationsmethoden // für die Instanzvariablen von IntNode public int getdata(){ return this.data; } public void setdata(int newdata){ this.data = newdata; } public IntNode getlink(){ return this.link; } } public void setlink(intnode newlink){ this.link = newlink; } 09.01.2012 Prof. Dr. Andreas Schmietendorf 11

Verkettete Listen Klasse: IntList Implementiert die verketteten Liste von Int-Werten: 2 Instanzvariablen - Erster Knoten in der Liste - Anzahl der Knoten in der Liste Konstruktor Belegung der Variablen beim Erzeugen der Instanz - this.head = null; - this.numnodes = 0; Methoden von IntList: - Traversieren -Elemente der Liste untersuchen showlist() - Einfügen Knoten in die Liste einfügen (am Kopf oder in der Liste) - Entfernen Knoten aus der Liste entfernen (am Kopf oder in der Liste) Quelle: Sanchez, J.; Canton, M.P.: Java 2 Wochenend Crashkurs, mitip-verlag, ISBN 3-8266-0769-4 09.01.2012 Prof. Dr. Andreas Schmietendorf 12

Verkettete Listen Quelle: Sanchez, J.; Canton, M.P.: Java 2 Wochenend Crashkurs, mitip-verlag, ISBN 3-8266-0769-4 09.01.2012 Prof. Dr. Andreas Schmietendorf 13

Verkettete Listen package listen; //Klasse für verkettete Liste von Integerwerten class IntList{ // IntList - Container zum Speichern von Objekten der Klasse IntNode // Instanzvariablen int numnodes; // Anzahl Knoten in Liste IntNode head; // Erster Knoten in Liste // Konstruktor public IntList(){..} // Einfügen eines Elements am Kopf der Liste public void insertathead(int item){..} // Löscht das Element im Kopf der Liste. public boolean removefromhead(){..} } // Traversiere Liste und zeige alle Elemente public void showlist(){..} 09.01.2012 Prof. Dr. Andreas Schmietendorf 14

Verkettete Listen // Einfügen eines Elements am Kopf der Liste public void insertathead(int item) { // Erzeuge neuen Knoten IntNode anode = new IntNode(item, this.head); // Anzahl Knoten updaten this.numnodes++; // Kopf auf neuen Knoten setzen this.head = anode; // Kopf auf neuen Knoten setzen } 09.01.2012 Prof. Dr. Andreas Schmietendorf 15

Verkettete Listen // Löscht das Element im Kopf der Liste. public boolean removefromhead() { // Leere Liste? if(this.numnodes == 0) return false; // Entferne Knoten durch Umsetzen des Kopfes this.head = this.head.getlink(); this.numnodes--; return true; } 09.01.2012 Prof. Dr. Andreas Schmietendorf 16

Verkettete Listen public void showlist(){ // Zeige Anzahl Knoten in Liste System.out.println("Anzahl Knoten: " + this.numnodes); } // Erzeuge eine Variable für die Traversierung. // Diese Variable ist von Typ IntNode und wird mit // dem Kopf der Liste initialisiert. IntNode anode = this.head; while(anode!= null){ System.out.print(aNode.getData() + " "); // nächster Knoten anode = anode.getlink(); } System.out.println(); 09.01.2012 Prof. Dr. Andreas Schmietendorf 17

Übung - Verkettete Listen Analysieren Sie die Ihnen zur Verfügung gestellten Klassen Schreiben Sie ein Programm welches in Abhängigkeit eingegebener Integerzahlen eine verkettete Liste erzeugt. - Legen Sie die eingegeben Werte in einem Array aus Integerwerten ab - Nutzen Sie die Klassen IntNode und IntList (verwendet IntNode) - Erzeugen der verketteten Liste IntList mylist = new IntList(); - Fügen Sie die einzelnen Werte jeweils am Kopf der Liste ein - Geben Sie die komplette Liste aus - Löschen Sie ein Element am Kopf der Liste - Geben Sie die komplette Liste wiederum aus Optional: Einfügen/Entfernen eines bestimmten Elementes 09.01.2012 Prof. Dr. Andreas Schmietendorf 18

Verkettete Listen Übung Optional (Problem des Josephus ): N Personen beschließen, einen Massenselbstmord zu begehen. Sie stellen sich in einen Kreis auf und töten jeweils die M-te Person, wobei sich immer wieder der Kreis schließt. Es ist zu ermitteln, welche Person als letzte überlebt bzw. allgemeiner wie die Reihenfolge aussieht. Beispiel für N=5 und M=3: 1 Nutzen Sie den vorgegebenen Rahmen Josephus.java! 4 2 2 1 09.01.2012 Prof. Dr. Andreas Schmietendorf 19 3 5 3 4 Reihenfolge: 3 1 5 2 4

Verkettete Listen Mehrfach verkettete Listen: Liste mit mehrfachen Referenzen - Speicherung von Nachfolgerknoten und Vorgängerknoten - Ggf. Speicherung weiterer für die Operation benötigter Knoten Bewertung: - Vorteil: Verbesserung der Laufzeit - Nachteil: Erhöhter Bedarf an Speicherplatz Zirkuläre Listen - letzter Knoten der Liste verweist auf den ersten Knoten - Verwendung zur Implementierung von Ein- und Ausgabepuffer 09.01.2012 Prof. Dr. Andreas Schmietendorf 20

Verwendung von Binärbäumen 09.01.2012 Prof. Dr. Andreas Schmietendorf 21

Bäume Ein Baum ist ein gerichteter Graph, bei dem jeder Knoten ausgehend von einem besonderen Knoten, dem so genannten Wurzelknoten, über genau einen Weg erreichbar ist. Die von einem Knoten unmittelbar über eine Kante erreichbaren Knoten heißen Kindknoten. Der Knoten selbst Elternknoten. Binärbäume (binary trees) sind Bäume, bei denen jeder Knoten höchstens zwei Kindknoten hat. Quelle: Ehses, E.; Victor, F.: Programmiersprachen, in Taschenbuch der Informatik, Fachbuchverlag Leipzig, 3. Auflage, ISBN 3-446-21331-7 09.01.2012 Prof. Dr. Andreas Schmietendorf 22

Binärbaum 09.01.2012 Prof. Dr. Andreas Schmietendorf 23

Binärbaum Definition 1: Ein Binärbaum ist eine - leere Struktur oder - ein Knoten mit einem linken (Teil-)Baum und einem rechten (Teil-)Baum. Definition 2: Ein binärer Suchbaum ist ein binärer Baum mit folgender Zusatzbedingung für alle Knoten: - Alle kleineren und gleichen Schlüssel befinden sich im linken Teilbaum. - Alle größeren Schlüssel befinden sich im rechten Teilbaum. 09.01.2012 Prof. Dr. Andreas Schmietendorf 24

Binärbaum Begriffe I Die Wurzel eines Baumes ist der Knoten, der als einziger keinen Vorgänger besitzt. Ein Blatt ist ein Knoten, der keinen Nachfolger hat. Alle anderen Knoten heißen auch innere Knoten. 09.01.2012 Prof. Dr. Andreas Schmietendorf 25

Binärbaum Begriffe II Die Knoten eines Baums können in Ebenen unterteilt werden: Ein Binärbaum heißt voll, wenn außer der letzten alle seine Ebenen voll besetzt sind, d.h. wenn die Ebenen k genau 2 k Knoten enthält. Ein Binärbaum heißt komplett, wenn er voll ist und die Knoten auf der letzten Ebene alle linksbündig und dicht angeordnet sind. Ebene 0 Ebene 1 Ebene 2 Ebene 3 09.01.2012 Prof. Dr. Andreas Schmietendorf 26

Binärbaum Begriffe III Ein Pfad in einem Baum ist eine Folge von Knoten p 0,..., p k eines Baums, die die Bedingung erfüllt, dass p i+1 Nachfolger von p i ist für 0=<i<k. Ein Pfad, der p 0 mit p k verbindet, hat die Länge k. Jeder von der Wurzel verschiedene Knoten eines Baums ist durch genau einen Pfad mit der Wurzel verbunden. Pfadlänge = 3 Ebene 0 Ebene 1 Ebene 2 Ebene 3 09.01.2012 Prof. Dr. Andreas Schmietendorf 27

Binärbaum Begriffe IV Die Tiefe eines Knotens ist sein Abstand zur Wurzel, d.h. die Anzahl der Kanten auf dem Pfad von diesem zur Wurzel. Die Höhe eines Baums gibt an, wie weit die tiefsten Blätter von der Wurzel entfernt sind. Sein Gewicht ist die Anzahl der Knoten: 09.01.2012 Prof. Dr. Andreas Schmietendorf 28

Binärbaum Implementierung Binärbaums (Knoten als Objekt d. Klasse BTNode): Benötigte Instanzvariablen: - Knotendaten private int data; - Knotenlevel private int level; - Referenz auf das linke Kind des Knotens private BTNode leftch; - Referenz auf das rechte Kind des Knotens private BTNode rightch; Benötigte Methoden innerhalb der Klasse BTNode - Konstruktor Init der 4 Instanzvariablen this.level = nodelevel; - Schreiben und Lesen der Instanzvariablen, wie z.b.: public BTNode getleft() public void setleft(btnode child) 09.01.2012 Prof. Dr. Andreas Schmietendorf 29

Übung - Binärbäume Realisieren Sie in einem Java-Programm eine Datenstruktur sortierter binärer Baum. Füllen Sie die Datenstruktur mit Datenwerten von 1 bis 10. Der Baum enthält somit 10 Knoten. Wie viele Ebenen hat der von Ihnen programmierte Baum? Wie viele Ebenen kann ein Baum dieser Art mit 10 Knoten maximal und minimal haben? Erweiterung: Realisieren Sie die iterativen oder rekursive Funktionen maxsuche(btnode root) bzw. minsuche(btnode root), die in einem durch seine Wurzel root gegebenen Binärbaum den größten bzw. kleinsten Schlüssel sucht. Optional: Realisieren Sie die Suche nach einem bestimmten Knoten 09.01.2012 Prof. Dr. Andreas Schmietendorf 30

Binärbaum Klasse BTNode 09.01.2012 Prof. Dr. Andreas Schmietendorf 31

Binärbaum Klasse BTContainer 09.01.2012 Prof. Dr. Andreas Schmietendorf 32

Binärbaum Klasse BTContainer 09.01.2012 Prof. Dr. Andreas Schmietendorf 33

Binärbaum Klasse BTTest 09.01.2012 Prof. Dr. Andreas Schmietendorf 34

Binärbaum Übung -Bemerkungen: Das kleinste Element eines binären Suchbaumes findet man, wenn man dem linken Teilbaum solange folgt, bis ein Knoten mit einem leeren linken Teilbaum angetroffen wird. - minsuche(btnode root) Das größte Element eines binären Suchbaumes findet man, wenn man dem rechten Teilbaum solange folgt, bis ein Knoten mit einem leeren rechten Teilbaum angetroffen wird. - maxsuche(btnode root) 09.01.2012 Prof. Dr. Andreas Schmietendorf 35

Binärbaum Lösungsansatz zur min- bzw. max-suche: 09.01.2012 Prof. Dr. Andreas Schmietendorf 36

Binärbaum Basisoperationen auf Binärbäume: Suchen nach einem Schlüssel Einfügen eines Knotens mit gegebenem Schlüssel Entfernen eines Knotens mit gegebenem Schlüssel Diese Operationen werden Wörterbuchoperationen genannt. Eine entsprechende Struktur mit ihren Operationen wird als Implementierung eines Wörterbuchs bezeichnet. 09.01.2012 Prof. Dr. Andreas Schmietendorf 37

Binärbaum Weitere Operationen auf Binärbäume: Durchlaufen aller Knoten in bestimmter Reihenfolge (Traversieren) - inorder: linker Teilbaum, Wurzel, rechter Teilbaum - preorder: Wurzel, linker Teilbaum, rechter Teilbaum - postorder: linker Teilbaum, rechter Teilbaum, Wurzel Aufspalten eines Baums in mehrere Bäume Zusammenfügen mehrerer Bäume zu einem Baum Konstruieren eines Baums mit bestimmten Eigenschaften 09.01.2012 Prof. Dr. Andreas Schmietendorf 38

INORDER - LWR Ausgabereihenfolge: 2, 6, 7, 9, 12, 15, 18, 25 09.01.2012 Prof. Dr. Andreas Schmietendorf 39

PREORDER - WLR Ausgabereihenfolge: 12, 6, 2, 7, 9, 18, 15, 25 09.01.2012 Prof. Dr. Andreas Schmietendorf 40

POSTORDER - LRW Ausgabereihenfolge: 2, 9, 7, 6, 15, 25, 18, 12 09.01.2012 Prof. Dr. Andreas Schmietendorf 41

Balancierter binärer Suchbaum (AVL-Baum) 09.01.2012 Prof. Dr. Andreas Schmietendorf 42

AVL-Bäume Wachsender Aufwand zur Suche eines Elementes in einem Suchbaum mit zunehmender Tiefe T des gefundenen Knoten. - Bei einem Suchbaum mit 1000 Knoten können bis zu 1000 Vergleiche benötigt werden! - Bei Speicherung der Daten in einem gut balancierten Baum könnten jedoch maximal 10 Vergleiche zum Auffinden des gesuchten Elements ausreichen! O(log n) Ziel: Vermeidung schlecht balancierter Bäume (Ursachen liegen in Einfüge- und Löschoperationen begründet) - Bedarf einer Reorganisation der Baumstruktur nach Einfüge- und Löschoperationen. Rebalancierung durch Rotation bzw. Doppelrotation - Problem des mit der Reorganisation verbundenen Aufwandes, weshalb man sich mit einer schwächeren Form (den so genannten AVL-Bäumen) der Balance begnügt. 09.01.2012 Prof. Dr. Andreas Schmietendorf 43

AVL-Bäume AVL-Baum nach Adelson-Velsky und Landis -1962: Ein binärer Suchbaum ist ein AVL-Baum, wenn für jeden Knoten Folgendes gilt: Die Tiefen des linken und rechten Teilbaums unterscheiden sich höchstens um 1. A A B F B F C E G C E D AVL-Baum D kein AVL-Baum 09.01.2012 Prof. Dr. Andreas Schmietendorf 44

Animation binärer Suchbäume Quelle: http://www.cs.umd.edu/class/spring2002/cmsc420-0401/demo/avltree/ 09.01.2012 Prof. Dr. Andreas Schmietendorf 45

Animation binärer Suchbäume Quelle: http://fbim.fh-regensburg.de/~saj39122/bruhi 09.01.2012 Prof. Dr. Andreas Schmietendorf 46

Animation binärer Suchbäume Quelle: http://alfi.ira.uka.de/lehre/sommer2002/avltreeapplet/avl.html 09.01.2012 Prof. Dr. Andreas Schmietendorf 47

Übung AVL-Bäume Führen Sie die Animation eines binären Suchbaums mit Hilfe der vorgegebenen Lösungen im Internet aus. - Bauen Sie einen Binärbaum mit folgenden Knoten auf (Papier und anschließend Simulation): 5, 3, 8, 4, 1, 10 - Bauen Sie einen Binärbaum mit folgenden Knoten auf (Papier und anschließend Simulation): 5, 3, 1, 4, 8, 10 - Beobachten Sie die Auswirkungen des AVL-Verhaltens und vergleichen Sie den Prozess zum Aufbau beider Binärbäume Optional: Welche 4 Möglichkeiten der Rotation von Binärbäumen werden zur Gewährleistung des AVL-Verhaltens benötigt? Optional: Welche Information müssen Knoten eines AVL-Baums enthalten, um benötigte Rotationen auszulösen? 09.01.2012 Prof. Dr. Andreas Schmietendorf 48