Algorithmen und Datenstrukturen



Ähnliche Dokumente
Datenstrukturen & Algorithmen

Algorithmen und Datenstrukturen Suchbaum

Binäre Bäume Darstellung und Traversierung

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

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

13. Binäre Suchbäume

Lernziele: Ausgleichstechniken für binäre Bäume verstehen und einsetzen können.

Kapiteltests zum Leitprogramm Binäre Suchbäume

Datenstrukturen und Algorithmen

WS 2009/10. Diskrete Strukturen

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Tutorium Algorithmen & Datenstrukturen

Eine Baumstruktur sei folgendermaßen definiert. Eine Baumstruktur mit Grundtyp Element ist entweder

1 topologisches Sortieren

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

KONSTRUKTION VON ROT-SCHWARZ-BÄUMEN

Kap. 4.2: Binäre Suchbäume

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Nachtrag zu binären Suchbäumen

15 Optimales Kodieren

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

Anmerkungen zur Übergangsprüfung

368 4 Algorithmen und Datenstrukturen

Konzepte der Informatik

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

t r Lineare Codierung von Binärbbäumen (Wörter über dem Alphabet {, }) Beispiel code( ) = code(, t l, t r ) = code(t l ) code(t r )

3.2 Binäre Suche. Usr/local/www/ifi/fk/menschen/schmid/folien/infovk.ppt 1

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Grundlagen der Programmierung 2. Bäume

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

Algorithmen und Datenstrukturen Balancierte Suchbäume

Information Systems Engineering Seminar

Informatik II Bäume. Beispiele. G. Zachmann Clausthal University, Germany Stammbaum. Stammbaum. Stammbaum

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

8 Diskrete Optimierung

Zeichnen von Graphen. graph drawing

Kurs 1613 Einführung in die imperative Programmierung

Algorithmen und Datenstrukturen

Kapitel 6: Graphalgorithmen Gliederung

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen

Vorkurs Informatik WiSe 15/16

Programmiertechnik II

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

Grundbegriffe der Informatik

Programmiersprachen und Übersetzer

Job-Management simpel und klar (Einsätze, Aufträge, Lohn und Rechnung verwalten)

AVL-Bäume Analyse. Theorem Ein AVL-Baum der Höhe h besitzt zwischen F h und 2 h 1 viele Knoten. Definition Wir definieren die nte Fibonaccizahl:

Was meinen die Leute eigentlich mit: Grexit?

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Theoretische Grundlagen der Informatik

Beispiel zu Datenstrukturen

Anwendungsbeispiele Buchhaltung

Der monatliche Tarif für ein Handy wurde als lineare Funktion der Form f(x) = k x + d modelliert (siehe Grafik).

DATENSTRUKTUREN UND ZAHLENSYSTEME

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

Teil III: Routing - Inhalt I. Literatur. Geometric Routing. Voraussetzungen. Unit Disk Graph (UDG) Geometric Routing 29

Mathematik. UND/ODER Verknüpfung. Ungleichungen. Betrag. Intervall. Umgebung

Beispiele für Relationen

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

INFOS FÜR MENSCHEN AUS DEM AUSLAND WENN SIE FÜR EINEN FREIWILLIGEN-DIENST NACH DEUTSCHLAND KOMMEN WOLLEN: IN DIESEM TEXT SIND ALLE WICHTIGEN INFOS.

Repetitionsaufgaben Wurzelgleichungen

Sortierverfahren für Felder (Listen)

Algorithmen & Datenstrukturen 1. Klausur

Leichte-Sprache-Bilder

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Eva Douma: Die Vorteile und Nachteile der Ökonomisierung in der Sozialen Arbeit

Häufig wiederkehrende Fragen zur mündlichen Ergänzungsprüfung im Einzelnen:

1 Mathematische Grundlagen

Algorithmische Mathematik

WS 2013/14. Diskrete Strukturen

3.1 Konstruktion von minimalen Spannbäumen Es gibt zwei Prinzipien für die Konstruktion von minimalen Spannbäumen (Tarjan): blaue Regel rote Regel

15.3 Bedingte Wahrscheinlichkeit und Unabhängigkeit

Primzahlen und RSA-Verschlüsselung

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Datenstrukturen. einfach verkettete Liste

Bußgelder im Ausland. Inhalt. 1 Vorsicht es kann teuer werden

Lichtbrechung an Linsen

Grundlagen der Theoretischen Informatik, SoSe 2008

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Kurzanleitung MAN E-Learning (WBT)

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

Microsoft PowerPoint 2013 Folien gemeinsam nutzen

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Professionelle Seminare im Bereich MS-Office

Datenaufbereitung in SPSS. Daten zusammenfügen

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

Navigieren auf dem Desktop

Wurzeln als Potenzen mit gebrochenen Exponenten. Vorkurs, Mathematik

Funktions-Postfach (Shared Mailbox) in Outlook 2010/2013 einrichten

2.11 Kontextfreie Grammatiken und Parsebäume

3. LINEARE GLEICHUNGSSYSTEME

Zwischenablage (Bilder, Texte,...)

CAQ Software für Ihr Qualitätsmanagement. Ablauf für die Erfassung der Fehler in der Fertigung

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

Was ich als Bürgermeister für Lübbecke tun möchte

Transkript:

Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens aw@awilkens.com Überblick Grundlagen Definitionen Elementare Datenstrukturen Rekursionen Bäume 2 1

Datenstruktur Baum Definition eines Baumes Ein einzelner Knoten ist ein Baum. Wenn B 1, B 2,..., B n für n>=1 Bäume sind, dann ist auch das folgende Gebilde ein Baum: B 1,...,B n nennt man Teilbäume oder Unterbäume. 3 Beispiele für Bäume 4 2

Begriffe Wurzel Kante Blatt innerer Knoten 5 Begriffe Wurzel: Knoten ohne Vorgänger Innere Knoten: mit Vorgänger und Nachfolger Blätter: Knoten ohne Nachfolger 6 3

Listen & Bäume Listen und Bäume können beide zum Ablegen von Daten benutzt werden. Listen haben Nachteile z.b. beim Zugriff auf bestimmte Elemente, da kein Random Access möglich ist. Listen haben Vorteile wegen z.b. hoher Flexibilität bei Einfügungen und Löschungen. 7 Listen & Bäume Bäume bieten Kompromiß: flexibles Einfügen wie bei Listen dabei geringere Zahl von Zugriffsoperationen 8 4

Formale Definition Ein Baum ist ein ungerichteter Graph ohne geschlossene Wege, in dem zwischen je zwei Knoten genau ein Weg existiert (zyklenfreier, zusammenhängender, ungerichteter Graph) 9 geordnete Bäume Wenn die Teilbäume B 1,...,B n in einer festen Reihenfolge stehen sollen, so spricht man von geordneten Bäumen. 10 5

gerichteter Baum Ein gerichteter Graph ist dann ein gerichteter Baum, wenn er zyklenfrei und zusammenhängend ist und wenn jeder Knoten höchstens eine einlaufende Kante besitzt. 11 Wurzelbaum Ein Wurzelbaum ist ein gerichteter Baum mit genau einem Knoten w (Wurzel) ohne einlaufende Kante, von dem aus man jeden anderen Knoten des Baumes auf genau einem Weg erreichen kann. 12 6

Wurzelbaum In einem Wurzelbaum haben alle Knoten außer der Wurzel genau einen Vorgänger. Der nebenstehende Baum ist kein Wurzelbaum, da der Knoten n4 zwei Vorgänger hat. 13 Niveau eines Knotens In einem Wurzelbaum besitzt jeder Knoten ein sogenanntes Niveau. Leider gibt es für das Niveau zwei unterschiedliche Interpretationen. Variante 1 Variante 2 14 7

Niveau Variante 1 Das Niveau ist der Abstand eines Knotens von der Wurzel, in Anzahl durchlaufener Kanten. 15 Niveau Variante 2 Die Wurzel hat das Niveau 1 ein direkter Nachfolger hat das Niveau 2 usw. 16 8

Höhe des Baumes Als Höhe des Baumes bezeichnet man das größte auftretende Niveau des Baumes. Da das Niveau nach Variante 1 oder 2 angegeben werden kann, gibt es auch bei der Höhe zwei Varianten! 17 Vater, Sohn und Bruder Wenn im gerichteten Baum eine Kante vom Knoten u zum Knoten v existiert, dann ist u der Vater von v und v der Sohn von u. Wenn u eine weitere Kante zu v` hat, dann nennt man v und v` Brüder. 18 9

geordneter Wurzelbaum Haben die Nachfolger eines Knotens eine Ordnung (z.b. linker und rechter Nachfolger), dann spricht man von einem geordneten Wurzelbaum. 19 Grad des Knotens Die Anzahl der Nachfolger eines Knotens nennt man Grad (Ordnung) des Knotens. 20 10

Grad des Knotens Grad(u) = 2 Grad(v) = 3 Grad(w) = 0 21 Grad des Baumes Das Maximum der im Wurzelbaum vorkommenden Grade nennt man Grad (Ordnung) des Baumes. Der Grad des nebenstehenden Baumes ist 3. 22 11

Binärbaum Ein Binärbaum ist ein geordneter Wurzelbaum vom Grad 2, d.h. jeder Knoten hat maximal 2 Nachfolger. 23 Voller & vollständiger Binärbaum Ein voller Binärbaum ist ein Binärbaum, bei dem jedes Niveau komplett mit Knoten gefüllt ist. Ein vollständiger Binärbaum ist auf allen Ebenen gefüllt mit Ausnahme des zeichnerisch untersten Niveaus. (In der Literatur werden diese beiden Definitionen teilweise vertauscht.) 24 12

Voller Binärbaum 16 8 24 4 12 20 28 2 6 10 14 18 22 26 30 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 ALLE Ebenen sind komplett. 25 Vollständiger Binärbaum Nur unterste Ebene ist nicht komplett. 26 13

Anzahl Knoten Anzahl der Knoten in einem Binärbaum der Höhe k: voller Binärbaum: n = 2 k+1 1 vollständiger Binärbaum: 2 k <= n <= 2 k+1 1 Höhe angegeben nach Variante 1, d.h. Wurzel hat Höhe 0 27 Binärer Suchbaum Ein binärer Suchbaum kann dazu genutzt werden, sortierte Daten für Suchzwecke bereitzuhalten. 28 14

Binärer Suchbaum bei aufsteigender Sortierung gilt: Alle Werteinträge im linken Teilbaum sind kleiner als der Eintrag in der Wurzel. Alle Werteinträge im rechten Teilbaum sind größer als der Eintrag in der Wurzel. Linker und rechter Teilbaum sind ebenfalls Suchbäume. 29 Binärer Suchbaum 20 14 33 8 17 26 39 3 11 30 30 15

Vorteil binärer Suchbaum effizienter Suchvorgang Beispiel: bei 2 16-1 = 65535 Knoten ist die minimale Baumhöhe h=15 (voller Baum) nach maximal 16 Vergleichen ist klar, ob der Wert enthalten ist oder nicht 31 Aufbau binärer Suchbaum Aufbau eines Knotens struct node { ItemType data; node *left; node *right; }; 32 16

Algorithmus binärer Suchbaum Beim leeren Baum wird der erste Wert in einen neu geschaffenen Knoten untergebracht und unter dem root- Pointer eingehängt. 33 Algorithmus binärer Suchbaum Weitere Knoten wie folgt eingehängt: bei root beginnend im Baum absteigen wenn neuer Wert kleiner als aktueller Knotenwert, dann links absteigen wenn neuer Wert größer, dann rechts absteigen. Neuen Knoten anstelle des gefundenen Nullpointers einhängen. 34 17

Projekt Visualisierung von binären Bäumen mit Visual C++ Sascha Rother und Christoph Holst SS 2003 35 Nachteil Die Form des nach diesem Algorithmus entstehenden Baumes hängt stark ab von den eingegliederten Daten. Bei bereits sortierten Daten entsteht eine lineare Liste. 36 18

Ideal Ideal wäre es, wenn der binäre Suchbaum immer die minimale Höhe hat, da dann die Suchzeit minimiert wird. (Mehr dazu später.) 37 Durchlaufen von Binärbäumen Um z.b. alle Werte eines Binärbaumes auszugeben, muß dieser durchlaufen werden. Das Durchlaufen nennt man auch traversieren. 38 19

Durchlaufen von Binärbäumen Verschiedene Möglichkeiten: 1. WLR Wurzel-Links-Rechts 2. WRL Wurzel-Rechts-Links 3. LWR Links-Wurzel-Rechts 4. LRW Links-Rechts-Wurzel 5. RWL Rechts-Wurzel-Links 6. RLW Rechts-Links-Wurzel 39 Bedeutung WLR Wurzel-Links-Rechts Gebe den Wert der Wurzel aus. Laufe in den linken Teilbaum. Laufe in den rechten Teilbaum. 40 20

Preorder, Inorder, Postorder Das WLR-Verfahren nennt man auch Preorder. Das LWR-Verfahren nennt man auch Inorder. Das LRW-Verfahren nennt man auch Postorder. 41 Beispiel 20 14 33 8 17 26 39 3 11 30 Wie sieht der WLR-Durchlauf aus? (Preorder) 42 21

Beispiel 20 14 33 8 17 26 39 3 11 30 WLR (Preorder): 20, 14, 8, 3, 11, 17, 33, 26, 30, 39 43 Beispiel 20 14 33 8 17 26 39 3 11 30 Wie sieht der LWR-Durchlauf aus? (Inorder) 44 22

Beispiel 20 14 33 8 17 26 39 3 11 30 LWR (Inorder): 3, 8, 11, 14, 17, 20, 26, 30, 33, 39 45 Beispiel 20 14 33 8 17 26 39 3 11 30 Wie sieht der LRW-Durchlauf aus? (Postorder) 46 23

Beispiel 20 14 33 8 17 26 39 3 11 30 LRW (Postorder): 3, 11, 8, 17, 14, 30, 26, 39, 33, 20 47 Auf einen Blick derselbe Baum, verschiedene Durchlaufvarianten: WLR: 20, 14, 8, 3, 11, 17, 33, 26, 30, 39 LWR: 3, 8, 11, 14, 17, 20, 26, 30, 33, 39 LRW: 3, 11, 8, 17, 14, 30, 26, 39, 33, 20 48 24

Klausuraufgabe SS 2004 Bei der aktuell in Portugal stattfindenden Fußball-EM sind außer den Gastgebern noch folgende 15 Nationen am Start: BG Bulgarien CH Schweiz CZ Tschechien D Deutschland DK Dänemark E Spanien ENG England F Frankreich GR Griechenland HR Kroatien I Italien LV Lettland NL Niederlande RUS Russland S Schweden Zeichnen Sie einen Binären Suchbaum mit optimaler (d.h. möglichst geringer) Höhe, der als Nutzdaten die oben angegebenen Kürzel der 15 Nationen (ohne Gastgeber Portugal) besitzt. Zeichnen Sie nur den fertigen Baum, keine einzelnen Entwicklungsschritte. 49 25