Grundlagen der Programmierung

Größe: px
Ab Seite anzeigen:

Download "Grundlagen der Programmierung"

Transkript

1 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 Prof. Dr. Andreas Schmietendorf 1

2 Datenstrukturen Prof. Dr. Andreas Schmietendorf 2

3 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) Prof. Dr. Andreas Schmietendorf 3

4 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! Prof. Dr. Andreas Schmietendorf 4

5 Verkettete Listen Prof. Dr. Andreas Schmietendorf 5

6 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 DATA LINK DATA LINK DATA LINK DATA null Kopfknoten Schwanzknoten Prof. Dr. Andreas Schmietendorf 6

7 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 Prof. Dr. Andreas Schmietendorf 7

8 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 Prof. Dr. Andreas Schmietendorf 8

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

10 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; } Prof. Dr. Andreas Schmietendorf 10

11 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; } Prof. Dr. Andreas Schmietendorf 11

12 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 Prof. Dr. Andreas Schmietendorf 12

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

14 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(){..} Prof. Dr. Andreas Schmietendorf 14

15 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 } Prof. Dr. Andreas Schmietendorf 15

16 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; } Prof. Dr. Andreas Schmietendorf 16

17 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(); Prof. Dr. Andreas Schmietendorf 17

18 Ü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 Prof. Dr. Andreas Schmietendorf 18

19 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! Prof. Dr. Andreas Schmietendorf Reihenfolge:

20 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 Prof. Dr. Andreas Schmietendorf 20

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

22 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 Prof. Dr. Andreas Schmietendorf 22

23 Binärbaum Prof. Dr. Andreas Schmietendorf 23

24 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 Prof. Dr. Andreas Schmietendorf 24

25 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 Prof. Dr. Andreas Schmietendorf 25

26 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 Prof. Dr. Andreas Schmietendorf 26

27 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 Prof. Dr. Andreas Schmietendorf 27

28 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: Prof. Dr. Andreas Schmietendorf 28

29 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) Prof. Dr. Andreas Schmietendorf 29

30 Ü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 Prof. Dr. Andreas Schmietendorf 30

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

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

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

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

35 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) Prof. Dr. Andreas Schmietendorf 35

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

37 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 Prof. Dr. Andreas Schmietendorf 37

38 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 Prof. Dr. Andreas Schmietendorf 38

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

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

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

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

43 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 Prof. Dr. Andreas Schmietendorf 43

44 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 Prof. Dr. Andreas Schmietendorf 44

45 Animation binärer Suchbäume Quelle: Prof. Dr. Andreas Schmietendorf 45

46 Animation binärer Suchbäume Quelle: Prof. Dr. Andreas Schmietendorf 46

47 Animation binärer Suchbäume Quelle: Prof. Dr. Andreas Schmietendorf 47

48 Ü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? Prof. Dr. Andreas Schmietendorf 48

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen

Algorithmen und Datenstrukturen 2. Dynamische Datenstrukturen Algorithmen und Datenstrukturen 2 Dynamische Datenstrukturen Algorithmen für dynamische Datenstrukturen Zugriff auf Variable und Felder durch einen Ausdruck: Namen durch feste Adressen referenziert Anzahl

Mehr

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

7. Dynamische Datenstrukturen Bäume. Informatik II für Verkehrsingenieure 7. Dynamische Datenstrukturen Bäume Informatik II für Verkehrsingenieure Übersicht dynamische Datenstrukturen Wozu? Oft weiß man nicht von Beginn an, wieviele Elemente in einer Datenstruktur untergebracht

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 8. Vorlesung Martin Middendorf und Peter F. Stadler Universität Leipzig Institut für Informatik middendorf@informatik.uni-leipzig.de studla@bioinf.uni-leipzig.de Gefädelte

Mehr

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

Algorithmen und Datenstrukturen. Bäume. M. Herpers, Y. Jung, P. Klingebiel Algorithmen und Datenstrukturen Bäume M. Herpers, Y. Jung, P. Klingebiel 1 Lernziele Baumstrukturen und Ihre Verwendung kennen Grundbegriffe zu Bäumen anwenden können Baumstruktur in C anlegen können Suchbäume

Mehr

Anwendungsbeispiel MinHeap

Anwendungsbeispiel MinHeap Anwendungsbeispiel MinHeap Uns seien n ganze Zahlen gegeben und wir möchten darin die k größten Zahlen bestimmen; zudem gelten, dass n deutlich größer als k ist Wir können das Problem mit Laufzeit in O(n

Mehr

Einfache binäre Suchbäume können entarten, so dass sich die Tiefen ihrer Blattknoten stark unterscheiden

Einfache binäre Suchbäume können entarten, so dass sich die Tiefen ihrer Blattknoten stark unterscheiden 5.6.2 AVL-Bäume Einfache binäre Suchbäume können entarten, so dass sich die Tiefen ihrer Blattknoten stark unterscheiden AVL-Bäume, benannt nach ihren Erfindern G. M. Adelson- Velskii und E. M. Landis,

Mehr

18. Natürliche Suchbäume

18. Natürliche Suchbäume Wörterbuchimplementationen 1. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Hashing: Implementierung von Wörterbüchern mit erwartet sehr schnellen Zugriffszeiten. Nachteile

Mehr

Kapitel 12: Induktive

Kapitel 12: Induktive Kapitel 12: Induktive Datenstrukturen Felix Freiling Lehrstuhl für Praktische Informatik 1 Universität Mannheim Vorlesung Praktische Informatik I im Herbstsemester 2009 Folien nach einer Vorlage von H.-Peter

Mehr

ADS: Algorithmen und Datenstrukturen

ADS: Algorithmen und Datenstrukturen ADS: Algorithmen und Datenstrukturen Teil VII Peter F. Stadler & Konstantin Klemm Bioinformatics Group, Dept. of Computer Science & Interdisciplinary Center for Bioinformatics, University of Leipzig 08.

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Binäre Bäume Zum Speichern und Suchen von Daten werden häufig Baumstrukturen verwendet Abspeichern von n Datenobjekten in einer Baumstruktur Ablegen von Daten ist in O(log(n))

Mehr

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen 1 7. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik studla@informatik.uni-leipzig.de aufbauend auf den Kursen der letzten Jahre von E. Rahm, G. Heyer,

Mehr

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

Bäume. Text. Prof. Dr. Margarita Esponda SS 2012 O4 O5 O6 O ALP2-Vorlesung, M. Esponda Bäume O1 O2 Text O3 O4 O5 O6 O7 Prof. Dr. Margarita Esponda SS 2012 22. ALP2-Vorlesung, M. Esponda Inhalt 1. Einführung 2. Warum Bäume? 3. Listen und Arrays vs. Bäume 4. Einfach verkettete binäre Suchbäume

Mehr

Einführung in die Informatik 2

Einführung in die Informatik 2 Einführung in die Informatik 2 Listen & Bäume Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz E 202 SvenKosub@uni-konstanzde Sprechstunde: Freitag, 14:00-15:00 Uhr, onv Sommersemester

Mehr

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

Natürliche Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. Natürliche Bäume 1/16 Natürliche Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 Natürliche Bäume 1/16 Bäume Begriffe (1/2) Bäume sind verallgemeinerte Listenstrukturen ein

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

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

Wiederholung. Bäume sind zyklenfrei. Rekursive Definition: Baum = Wurzelknoten + disjunkte Menge von Kindbäumen. Wiederholung Baum: Gerichteter Graph, der die folgenden drei Bedingungen erfüllt: Es gibt einen Knoten, der nicht Endknoten einer Kante ist. (Dieser Knoten heißt Wurzel des Baums.) Jeder andere Knoten

Mehr

Informatik II Bäume zum effizienten Information Retrieval

Informatik II Bäume zum effizienten Information Retrieval lausthal Informatik II Bäume zum effizienten Information Retrieval. Zachmann lausthal University, ermany zach@in.tu-clausthal.de Binäre Suchbäume (binary search tree, BST) Speichere wieder Daten als "Schlüssel

Mehr

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

Informatik II Vorlesung am D-BAUG der ETH Zürich Informatik II Vorlesung am D-BAUG der ETH Zürich Vorlesung 9, 2.5.2016 [Nachtrag zu Vorlesung : Numerische Integration, Zusammenfassung Objektorientierte Programmierung] Dynamische Datenstrukturen II:

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr

Mehr

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

Datenstrukturen Teil 2. Bäume. Definition. Definition. Definition. Bäume sind verallgemeinerte Listen. Sie sind weiter spezielle Graphen Bäume sind verallgemeinerte Listen Datenstrukturen Teil 2 Bäume Jeder Knoten kann mehrere Nachfolger haben Sie sind weiter spezielle Graphen Graphen bestehen aus Knoten und Kanten Kanten können gerichtet

Mehr

9. Natürliche Suchbäume

9. Natürliche Suchbäume Bäume Bäume sind. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Verallgemeinerte Listen: Knoten können mehrere Nachfolger haben Spezielle Graphen: Graphen bestehen aus Knoten

Mehr

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

5 Bäume. 5.1 Suchbäume. ein geordneter binärer Wurzelbaum. geordnete Schlüsselwertmenge. heißt (schwach) sortiert, g.d.w. gilt: 5 Bäume 5.1 Suchbäume Sei ein geordneter binärer Wurzelbaum. Sei Abbildung der Knotenmenge eine in eine vollständig geordnete Schlüsselwertmenge. heißt (schwach) sortiert, g.d.w. gilt: Falls sortiert ist,

Mehr

Einführung in die Informatik 2

Einführung in die Informatik 2 Einführung in die Informatik 2 Bäume & Graphen Sven Kosub AG Algorithmik/Theorie komplexer Systeme Universität Konstanz http://www.inf.uni-konstanz.de/algo/lehre/ss08/info2 Sommersemester 2008 Sven Kosub

Mehr

Datenstrukturen und Algorithmen SS07

Datenstrukturen und Algorithmen SS07 Datenstrukturen und Algorithmen SS07 Datum: 25.4.2007 Michael Belfrage mbe@student.ethz.ch belfrage.net/eth Programm von Heute Nachbesprechung Serie 4 Challenge der Woche Traversierung von Bäumen Pre-,

Mehr

Bäume 1. Thomas Röfer

Bäume 1. Thomas Röfer Bäume Thomas Röfer Preisverleihung Begriffsdefinitionen Eigenschaften Implementierung von Bäumen Durchlaufen von Bäumen Breitensuche/Tiefensuche Huffman-Kodierung Rückblick Sortieren Permutieren nach Dijkstra

Mehr

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

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 Teil : Suchen Problemstellung Elementare Suchverfahren Hashverfahren Binäre Suchbäume (Wiederholung aus Prog 2) Bäume: Begriffe, Eigenschaften und Traversierung Binäre Suchbäume Gefädelte Suchbäume Ausgeglichene

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 216 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda Vorstellung des 6. Übungsblatts. Hashing Binäre Suchbäume AVL-Bäume 2 Aufgabe: Hashing mit

Mehr

elementare Datenstrukturen

elementare Datenstrukturen elementare Datenstrukturen Wie die Daten das Laufen lernten Andreas Ferber af@myipv6.de elementare Datenstrukturen p./40 KISS elementare Datenstrukturen p./40 KISS (Keep It Simple, Stupid) Immer die einfachste

Mehr

13. Bäume: effektives Suchen und Sortieren

13. Bäume: effektives Suchen und Sortieren 13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Version: 25. Jan. 2016 Schwerpunkte Aufgabe und Vorteile von Bäumen Sortieren mit Bäumen Ausgabealgorithmen:

Mehr

13. Bäume: effektives Suchen und Sortieren

13. Bäume: effektives Suchen und Sortieren Schwerpunkte Aufgabe und Vorteile von Bäumen 13. Bäume: effektives Suchen und Sortieren Java-Beispiele: Baum.java Traverse.java TraverseTest.java Sortieren mit Bäumen Ausgabealgorithmen: - Preorder - Postorder

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 217 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Graphen, Suchbäume, AVL Bäume Heute: Graphen und Bäume Binäre Suchbäume AVL-Bäume Nächste

Mehr

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18

EINI LogWing/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 17/18 EINI LogWing/ Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 17/18 Dr. Lars Hildebrand Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@tu-dortmund.de

Mehr

18. Natürliche Suchbäume

18. Natürliche Suchbäume Bäume Bäume sind. Natürliche Suchbäume [Ottman/Widmayer, Kap..1, Cormen et al, Kap. 12.1-12.] Verallgemeinerte Listen: Knoten können mehrere Nachfolger haben Spezielle Graphen: Graphen bestehen aus Knoten

Mehr

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

Datenstrukturen Teil 3. Traversierung und AVL- Bäume. Traversierung. Traversierung. Traversierung Traversierung Datenstrukturen Teil 3 Traversierung und AVL- Bäume Traversierung: bezeichnet verschiede Verfahren einer Routenbestimmung durch baumförmige Graphen Dabei wird jeder Knoten und jede Kante

Mehr

Logische Datenstrukturen

Logische Datenstrukturen Lineare Listen Stapel, Warteschlangen Binärbäume Seite 1 Lineare Liste Begriffe first Funktion: sequentielle Verkettung von Datensätzen Ordnungsprinzip: Schlüssel Begriffe: first - Anker, Wurzel; Adresse

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 9.6.2017 Giuseppe Accaputo g@accaputo.ch 1 Aufbau des PVK Tag 1: Java Teil 1 Tag 2: Java Teil 2 Tag 3: Algorithmen & Komplexität Tag 4: Dynamische Datenstrukturen,

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Lernziele Die Definition wichtiger Begriffe im Zusammenhand mit Bäumen zu kennen. Markierte Bäumen, insbesondere Suchbäume,

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Übung 4: Die generische Klasse AvlBaum in Java 1

Übung 4: Die generische Klasse AvlBaum in Java 1 Übung 4: Die generische Klasse AvlBaum in Java 1 Ein binärer Suchbaum hat die AVL -Eigenschaft, wenn sich in jedem Knoten sich die Höhen der beiden Teilbäume höchstens um 1 unterscheiden. Diese Last (

Mehr

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

Idee: Wenn wir beim Kopfknoten zwei Referenzen verfolgen können, sind die Teillisten kürzer. kopf Eine Datenstruktur mit Schlüsselwerten 1 bis 10 Binäre Bäume Bäume gehören zu den wichtigsten Datenstrukturen in der Informatik. Sie repräsentieren z.b. die Struktur eines arithmetischen Terms oder die Struktur eines Buchs. Bäume beschreiben Organisationshierarchien

Mehr

Technische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter

Technische Universität München. Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter Vorlesungsgrobstruktur: wo stehen wir, wie geht s weiter Kapitel 7 Fortgeschrittene Datenstrukturen Motivation: Lineare Liste: Suchen eines Elements ist schnell O(log n) Einfügen eines Elements ist langsam

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Übung 3: Die generische Klasse BinärerSuchbaum in Java 1 Datenelemente der Klasse BinaererSuchbaum Das einzige Datenelelement in dieser Klasse ist die Wurzel vom Typ BinaerBaumknoten. Die Klasse BinaerBaumknoten

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 217 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. Graphen und Bäume 2. Binäre Suchbäume 3. AVL-Bäume 4. Algorithmen und Datenstrukturen 2 Agenda

Mehr

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12

EINI LW. Einführung in die Informatik für Naturwissenschaftler und Ingenieure. Vorlesung 2 SWS WS 11/12 EINI LW Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 11/12 Fakultät für Informatik Technische Universität Dortmund lars.hildebrand@udo.edu http://ls1-www.cs.uni-dortmund.de

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / Vorlesung 10, Donnerstag 9.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / Vorlesung 10, Donnerstag 9. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2013 / 2014 Vorlesung 10, Donnerstag 9. Januar 2014 (Verkettete Listen, Binäre Suchbäume) Junior-Prof. Dr.

Mehr

Suchbäume. Suchbäume. Einfügen in Binären Suchbäumen. Suchen in Binären Suchbäumen. Prinzip Suchbaum. 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 Suchbäume Suchbäume Prinzip Suchbaum Der Wert eines Knotens wird als Schlüssel verstanden Knoten kann auch weitere Daten enthalten, die aber hier nicht weiter betrachtet werden Werte der Schlüssel müssen

Mehr

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 17/18. Kapitel 14. Bäume. Bäume 1 Kapitel 14 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können

Mehr

Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik

Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik 5. Datenstrukturen Motivation Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik Eine Datenstruktur speichert gegebene Daten und stellt auf diesen bestimmte Operationen

Mehr

Datenstrukturen. einfach verkettete Liste

Datenstrukturen. einfach verkettete Liste einfach verkettete Liste speichert Daten in einer linearen Liste, in der jedes Element auf das nächste Element zeigt Jeder Knoten der Liste enthält beliebige Daten und einen Zeiger auf den nächsten Knoten

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (23 Bruder-Bäume, B-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei Wörterbuchoperationen

Mehr

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

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Übersicht: Graphen. Definition: Ungerichteter Graph. Definition: Ungerichteter Graph Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 07 Dr. Stefanie Demirci Computer Aided Medical Procedures Technische Universität München 7 Fortgeschrittene Datenstrukturen Graphen

Mehr

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 10, Donnerstag 8.

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 10, Donnerstag 8. Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / 2015 Vorlesung 10, Donnerstag 8. Januar 2015 (Verkettete Listen, Binäre Suchbäume) Junior-Prof. Dr.

Mehr

Verkettete Datenstrukturen: Bäume

Verkettete Datenstrukturen: Bäume Verkettete Datenstrukturen: Bäume 1 Graphen Gerichteter Graph: Menge von Knoten (= Elementen) + Menge von Kanten. Kante: Verbindung zwischen zwei Knoten k 1 k 2 = Paar von Knoten (k 1, k 2 ). Menge aller

Mehr

Informatik Abitur Bayern 2017 / II - Lösung

Informatik Abitur Bayern 2017 / II - Lösung Informatik Abitur Bayern 2017 / II - Lösung Autoren: Wolf (1) Wagner (2) Scharnagl (3-5) 1a 5 1b Diese Methode vergleicht den Namen des Interpreten eines jeden Elements der Liste mit dem gegebenen Namen.

Mehr

Motivation Binäre Suchbäume

Motivation Binäre Suchbäume Kap..: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS Fakultät für Informatik, TU Dortmund Zusätzliche Lernraumbetreuung Morteza Monemizadeh: Jeden Montag von :00 Uhr-:00 Uhr in

Mehr

Lineare Liste. struct list_element { float f; /* weitere Elemente */ struct list_element *next; /* Zeiger auf Nachfolger-Element */ }; Peter Sobe

Lineare Liste. struct list_element { float f; /* weitere Elemente */ struct list_element *next; /* Zeiger auf Nachfolger-Element */ }; Peter Sobe Lineare Liste Zeigertechnik zum dynamischen Herstellen und Lösen von Verbindungen zwischen Datenelementen Einsatz des Verbundtyps struct {...} in Kombination mit Zeigern. Da das Element selbst eine Struktur

Mehr

Trees. November 14, Algorithms & Datastructures 2 Exercises WT 2017

Trees. November 14, Algorithms & Datastructures 2 Exercises WT 2017 Trees November 14, 2017 Algorithms & Datastructures 2 Exercises WT 2017 Dipl.-Ing. University Linz, Institute for Pervasive Computing Altenberger Straße 69, A-4040 Linz anzengruber@pervasive.jku.at Binärbaum

Mehr

Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion

Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion Abschnitt 1 Aufgaben, Hilfestellungen und Musterlösungen zum Modul 5 Druckversion Aufgabe 1: Binäre Suchbäume: Iteratives Suchen/Einfügen/Löschen Das Material dieser Übung enthält in der Klasse Tree0 die

Mehr

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

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

Mehr

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 14. Bäume. Bäume 1 Kapitel 14 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können

Mehr

Trees. November 13, Algorithms & Datastructures 2 Exercises WT 2017

Trees. November 13, Algorithms & Datastructures 2 Exercises WT 2017 Trees November 13, 2018 Algorithms & Datastructures 2 Exercises WT 2017 Dipl.-Ing. University Linz, Institute for Pervasive Computing Altenberger Straße 69, A-4040 Linz anzengruber@pervasive.jku.at Binärbaum

Mehr

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

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert Inhalt Einführung 1. Arrays 1. Array unsortiert 2. Array sortiert 3. Heap 2. Listen 1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert 3. Bäume

Mehr

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

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Suchen. Lineare Suche. Such-Algorithmen. Sommersemester Dr. Programm heute Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 0 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Fortgeschrittene Datenstrukturen Such-Algorithmen

Mehr

Informatik II Prüfungsvorbereitungskurs

Informatik II Prüfungsvorbereitungskurs Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo g@accaputo.ch 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest

Mehr

Software Entwicklung 1

Software Entwicklung 1 Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Datenstruktur Liste Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 42 Formale Definition

Mehr

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

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 13. Bäume. Bäume 1 Kapitel 13 Bäume Bäume 1 Ziele Den Begriff des Baums in der Informatik kennenlernen Bäume als verkettete Datenstruktur repräsentieren können Rekursive Funktionen auf Bäumen verstehen und schreiben können

Mehr

Algorithmen und Datenstrukturen. Kapitel 4: Suchverfahren. Skript zur Vorlesung. Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen. Kapitel 4: Suchverfahren. Skript zur Vorlesung. Algorithmen und Datenstrukturen LUDWIG- MAXIMILIANS- UNIVERSITY MUNICH DEPARTMENT INSTITUTE FOR INFORMATICS Algorithmen und Datenstrukturen Kapitel 4: Suchverfahren Skript zur Vorlesung Algorithmen und Datenstrukturen Sommersemester

Mehr

Bäume und der Sequence ADT

Bäume und der Sequence ADT Bäume und der Sequence ADT Motivation: Der Sequence ADT Bei der Vorstellung verschiedener Implementierungen für Stacks, Queues und Deques wurde vor allem auf die Unterschiede zwischen Arrays fester Größe,

Mehr

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

Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen Sebastian Küpper Unzulänglichkeit von Feldern Wenn ein Unternehmen alle Rechnungen eines Jahres verwalten möchte,

Mehr

5.5 Prioritätswarteschlangen

5.5 Prioritätswarteschlangen 5.5 Prioritätswarteschlangen LIFO- und FIFO-Warteschlangen entfernen Werte aus der Warteschlange in Abhängigkeit davon, wann sie in diese eingefügt wurden Prioritätswartschlangen interpretieren die Werte

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (21 - Balancierte Bäume, AVL-Bäume) Prof. Dr. Susanne Albers Balancierte Bäume Eine Klasse von binären Suchbäumen ist balanciert, wenn jede der drei

Mehr

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

Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B3.1 Einführung. B3.2 Verkettete Liste. B3.3 Bäume Algorithmen und Datenstrukturen 22. März 2018 B3. Verkettete Listen und Bäume Algorithmen und Datenstrukturen B3. Verkettete Listen und Bäume B3.1 Einführung Marcel Lüthi and Gabriele Röger B3.2 Verkettete

Mehr

ADS 1: Algorithmen und Datenstrukturen

ADS 1: Algorithmen und Datenstrukturen ADS 1: Algorithmen und Datenstrukturen Teil IX Uwe Quasthoff Institut für Informatik Abteilung Automatische Sprachverarbeitung Universität Leipzig 1 Dezember 017 [Letzte Aktualisierung: 04/1/017, 10:56]

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen B3. Verkettete Listen und Bäume Marcel Lüthi and Gabriele Röger Universität Basel 22. März 2018 Einführung Abstrakter Datentyp / Datenstruktur Abstrakter Datentyp Eine Menge

Mehr

Tutoraufgabe 1 (Implementierung eines ADTs):

Tutoraufgabe 1 (Implementierung eines ADTs): Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Tutoriumslösung - Übung (Abgabe.05.0) F. Corzilius, S. Schupp, T. Ströder Tutoraufgabe (Implementierung eines ADTs): Wir spezifizieren den ADT

Mehr

Programmiertechnik II

Programmiertechnik II Bäume Symboltabellen Suche nach Werten (items), die unter einem Schlüssel (key) gefunden werden können Bankkonten: Schlüssel ist Kontonummer Flugreservierung: Schlüssel ist Flugnummer, Reservierungsnummer,...

Mehr

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

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee AVL-Bäume. Aufgabentyp Fügen Sie in einen anfangs leeren AVL Baum die folgenden Schlüssel ein:... Wenden Sie hierbei konsequent den Einfüge /Balancierungsalgorithmus an und dokumentieren Sie die ausgeführten

Mehr

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

Bäume. Listen und Bäume, Graphen und Bäume, elementare Eigenschaften von Binärbäumen, Implementierung, Generische Baumdurchläufe Bäume Listen und Bäume, Graphen und Bäume, elementare Eigenschaften von Binärbäumen, Implementierung, Generische Baumdurchläufe S. Staab, Informatik für IM II; Folien nach D. Saupe, sowie W. Küchlin, A.

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 10 (3.6.2014) Binäre Suchbäume I Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:

Mehr

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

Suchstrukturen. Übersicht. 8 Suchstrukturen. Allgemeines. H. Täubig (TUM) GAD SS Übersicht 8 Suchstrukturen Allgemeines Binäre Suchbäume AVL-Bäume H. Täubig (TUM) GAD SS 14 309 Allgemeines Übersicht 8 Suchstrukturen Allgemeines Binäre Suchbäume AVL-Bäume H. Täubig (TUM) GAD SS 14 310

Mehr

Fast Searching / Balanced trees

Fast Searching / Balanced trees Fast Searching / Balanced trees November, 8 Algorithms & Datastructures Exercises WS 8 DI -Tanase, DI Stefan Grünberger University Linz, Institute for Pervasive Computing Altenberger Straße 69, A- Linz

Mehr

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

Pro Informatik 2009: Objektorientierte Programmierung Tag 18. Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik Tag 18 Marco Block-Berlitz, Miao Wang Freie Universität Berlin, Institut für Informatik 09.09.2009 Agenda Tag 16 Datenstrukturen Abstrakte Datentypen, ADT Folge: Stack, Queue, Liste, ADT Menge: Bäume:

Mehr

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps

Binäre Suchbäume. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps Mengen n Ziel: Aufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: Mengen n Ziel: Aufrechterhalten einer

Mehr

Algorithmen und Datenstrukturen 1-5. Seminar -

Algorithmen und Datenstrukturen 1-5. Seminar - Algorithmen und Datenstrukturen 1-5. Seminar - Dominic Rose Bioinformatics Group, University of Leipzig Wintersemester 2009/10 Outline 5.+6. Übungsserie: 5 Aufgaben, insgesamt 40 Punkte A17 Baum-Traversierung

Mehr

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2017/18. Pro f. Dr. Sán do r Fe k e te Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2017/18 Pro f. Dr. Sán do r Fe k e te 1 Binärer Suchbaum Außerdem wichtig: Struktur der Schlüsselwerte! 2 Ordnungsstruktur Linker

Mehr

11. Elementare Datenstrukturen

11. Elementare Datenstrukturen 11. Elementare Datenstrukturen Definition 11.1: Eine dynamische Menge ist gegeben durch eine oder mehrer Mengen von Objekten sowie Operationen auf diesen Mengen und den Objekten der Mengen. Dynamische

Mehr

AVL-Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. AVL-Bäume 1/38

AVL-Bäume. (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun. Letzte Änderung: :16. AVL-Bäume 1/38 AVL-Bäume (Algorithmen und Datenstrukturen I) Prof. Dr. Oliver Braun Letzte Änderung: 18.03.2018 18:16 AVL-Bäume 1/38 Balancierte Bäume in einem zufällig erzeugten Binärbaum haben die Algorithmen Suchen,

Mehr

2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus

2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus 2.7 Bucket-Sort Bucket-Sort ist ein nicht-vergleichsbasiertes Sortierverfahren. Hier können z.b. n Schlüssel aus {0, 1,..., B 1} d in Zeit O(d(n + B)) sortiert werden, indem sie zuerst gemäß dem letzten

Mehr