Auswertung von Operatorbäumen Huffman-Code

Ähnliche Dokumente
Verkettete Datenstrukturen: Bäume

Diskrete Strukturen Kapitel 4: Graphentheorie (Bäume)

WS 2013/14. Diskrete Strukturen

Wurzelbäume. Definition 1

Einführung in die Informatik 2

Einführung in die Informatik 2

Programmieren in Haskell. Stefan Janssen. Strukturelle Rekursion. Universität Bielefeld AG Praktische Informatik. 10.

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition.

Graphen und Bäume. A.1 Graphen

Grundbegriffe der Informatik Tutorium 8

1 Der Baum. Informatik I: Einführung in die Programmierung 11. Bäume. Bäume in der Informatik. Bäume in der Informatik - Definition.

Algorithmische Graphentheorie

Bäume Jiri Spale, Algorithmen und Datenstrukturen - Bäume 1

WS 2011/2012. Robert Giegerich Dezember 2013

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

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

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

4.1 Bäume, Datenstrukturen und Algorithmen. Zunächst führen wir Graphen ein. Die einfachste Vorstellung ist, dass ein Graph gegeben ist als

Grundbegriffe der Informatik

Einführung in die Informatik 2

Bemerkung: Der vollständige Graph K n hat n(n 1)

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

Minimal spannende Bäume

Definition 15 Rot-Schwarz-Bäume sind externe Binärbäume (jeder Knoten hat 0 oder 2 Kinder) mit roten und schwarzen Kanten, so dass gilt:

Datenstrukturen & Algorithmen

Wünschenswerte Eigenschaft von Suchbäumen mit n Knoten: Suchen, Einfügen, Löschen auch im schlechtesten Fall O(log n)

Vorlesung Datenstrukturen

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

8.4 Suffixbäume. Anwendungen: Information Retrieval, Bioinformatik (Suche in Sequenzen) Veranschaulichung: DNA-Sequenzen

Proseminar Kodierverfahren bei Dr. Ulrich Tamm Sommersemester 2003 Thema: Codierung von Bäumen (Prüfer Codes...)

Kapitel 12: Induktive

Programmieren in Haskell Programmiermethodik

Kapitel 2 Partielle Ordnungen

Grundbegriffe der Informatik

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 2-1. Seminar -

Graphen vielseitig verwendbar zur Repräsentation von Zusammenhängen, etwa:

Isomorphie von Bäumen

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO

Grundlagen der Programmierung 2. Bäume

Prof. Dr. Schmidt-Thieme / Michael Rottmann Arbeitsblatt Algebra SS 2005

Vorlesung Datenstrukturen

Einführung in die Informatik 2

Einheit 11 - Graphen

Binäre Bäume Darstellung und Traversierung

Ferienkurs Propädeutikum Diskrete Mathematik

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

4.2 Minimale Spannbäume: Der Algorithmus von Jarník/Prim Definition 4.2.1

Algorithmen und Datenstrukturen 1

Relationen und DAGs, starker Zusammenhang

Algorithmen und Datenstrukturen SS09. Foliensatz 16. Michael Brinkmeier. Technische Universität Ilmenau Institut für Theoretische Informatik

Software Entwicklung 1

Informatik II Prüfungsvorbereitungskurs

Einführung in die Graphentheorie. Monika König

Warum Bäume? Teil 1: Suchen. Bäume: Begriffe und Eigenschaften (2) Bäume: Begriffe und Eigenschaften (1)

Logische Datenstrukturen

Zweizusammenhang und starker Zusammenhang

2 Repräsentation, Struktur und Interpretation von einfachen Rechenvorschriften

WS 2009/10. Diskrete Strukturen

Grundbegriffe der Informatik

Mehrwegbäume Motivation

ANALYSIS I FÜR TPH WS 2017/18 2. Übung Übersicht

10. Grassmannsche Vektoren und die Drehungen im Raum.

Algorithmen & Komplexität

B / B* - Bäume. Guido Hildebrandt Seminar Datenbanksysteme

Algorithmen und Datenstrukturen

5 BINÄRE ENTSCHEIDUNGS- DIAGRAMME (BDDS)

Algorithmische Bioinformatik 1

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

Kapitel 6: Spiele mit simultanen und sequentiellen Spielzügen. Einleitung. Übersicht Teil 2. Übersicht

Kürzeste Wege in Graphen. Orte mit Straßenverbindungen. Coma I Rolf Möhring

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Digraphen, DAGs und Wurzelbäume

Lernmodul 2 Graphen. Lernmodul 2: Geoobjekte und ihre Modellierung - Graphen

Algorithmische Bioinformatik I

Algorithmen für schwierige Probleme

8. A & D - Heapsort. Werden sehen, wie wir durch geschicktes Organsieren von Daten effiziente Algorithmen entwerfen können.

Matchings (Paarungen) in Graphen. PS Algorithmen auf Graphen SS `06 Steven Birr

Kurs 1663 Datenstrukturen" Musterlösungen zur Klausur vom Seite 1. Musterlösungen zur Hauptklausur Kurs 1663 Datenstrukturen 15.

Datenstrukturen. einfach verkettete Liste

Bäume und Wälder. Definition 1

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen

Algorithmen und Datenstrukturen 13

1.1 Abstrakte Datentypen 1.2 Lineare Strukturen 1.3 Bäume 1.4 Prioritätsschlangen 1.5 Graphen

Algorithmen und Datenstrukturen I Bruder-Bäume

Proseminar Online Algorithmen, Prof. Dr. Rolf Klein

WS 2008/09. Diskrete Strukturen

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

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

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Nachbarschaft, Grad, regulär, Inzidenz

-Grundsätzlich verstehen wir unter einer Menge eine Zusammenfassung von Elementen,

Algorithmen und Datenstrukturen I AVL-Bäume

Tutorium 23 Grundbegriffe der Informatik (7. Sitzung)

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Diskrete Mathematik. Sebastian Iwanowski FH Wedel. Kap. 6: Graphentheorie

Tutorium 23 Grundbegriffe der Informatik (6. Sitzung)

Diskrete Strukturen. Hausaufgabe 1 (5 Punkte) Hausaufgabe 2 (5 Punkte) Wintersemester 2007/08 Lösungsblatt Januar 2008

Programmierkurs Python II

HASKELL KAPITEL 8. Bäume

Transkript:

Datenstrukturen: Bäume 4 Bäume 4. Terminologie und Grundlagen: Modelle für Graphen und Bäume 4.. Spezifikation und einfahe Algorithmen 4. Anwendungen - 4.. Auswertung von Operatoräumen - 4.. Huffman-Code 4.4 Ojektorientierte Implementierung... Suhäume, Heaps hs / fu alp -Tree- 4 Bäume Verallgemeinerung von Folgen: Verzweigung in jedem Knoten möglih Jeder Knoten genau auf einem Weg erreihar o entspriht den Folgen: o o o 000 00 0 0 hs / fu alp -Tree-

Modellierung mit Bäumen Viele Beispiele - auh außerhal der Informtik Organisationsdiagramm FUB FB Physik FB Math&Inf... FB Germanistik Institut Math Institut f. Informatik Institut Math...... AG Theorie AG DB AG VSYS... AG Telematik hs / fu alp -Tree- Modellierung mit Bäumen Dokumentstruktur Buh Inhalt Kapitel Index Üersiht Hauptteil Zusammenfassung Ashnitt Hier: Aufau eines Buhes, niht ein konkretes Buh Metadaten <-> Daten hs / fu alp -Tree- 4

Modellierung mit Bäumen XML Textauszeihnung (Markup) <?xml version=".0"?> <rezept> <zutaten anzahl=""> <zutat>ei</zutat> <zutat>mehl</zutat> <zutat>salz</zutat> </zutaten> <anleitung> Alles zusammenrühren und aken. </anleitung> </rezept> { anzahl="" } zutaten zutat zutat zutat rezept anleitung Ei Mehl Salz Alles zusammenrühren und aken. Textuelle Darstellung Graphishe Darstellung hs / fu alp -Tree- 5 Modellierung mit Bäumen:XML Astraktes Dokumentmodell: Baum mit Knoten des Typs: root, element, attriute, text. hs / fu alp -Tree-

Pakages org.apahe.tools.ant org.apahe.tools.ant.taskdefs org.apahe.tools.ant.taskdefs.ompilers org.apahe.tools.ant.taskdefs.optional Klasseniliothek org.apahe.tools.ant.taskdefs.optional.learase org.apahe.tools.ant.taskdefs.optional.depend org.apahe.tools.ant.taskdefs.optional.depend.onstantpool org.apahe.tools.ant.taskdefs.optional.dotnet org.apahe.tools.ant.taskdefs.optional.ej org.apahe.tools.ant.taskdefs.optional.ide org.apahe.tools.ant.taskdefs.optional.java org.apahe.tools.ant.taskdefs.optional.jlink org.apahe.tools.ant.taskdefs.optional.jsp org.apahe.tools.ant.taskdefs.optional.junit org org.apahe.tools.ant.taskdefs.optional.metamata org.apahe.tools.ant.taskdefs.optional.net org.apahe.tools.ant.taskdefs.optional.perfore org.apahe.tools.ant.taskdefs.optional.sm org.apahe.tools.ant.taskdefs.optional.sound org.apahe.tools.ant.taskdefs.optional.vss org.apahe.tools.ant.types apahe tools sr sun... org.apahe.tools.ant.util org.apahe.tools.ant.util.regexp org.apahe.tools.mail org.apahe.tools.tar taskdefs util Symolishe IP-Adressierung Modellierung mit Bäumen: Sprahe Syntax natürliher Sprahe Satz Nominalphrase Veralphrase Artikel Nomen Ver Der Hund ellt Adver laut... und hs / fu alp -Tree- 8 4

Modellierung mit Bäumen: Sprahe... Syntax von Programmiersprahen Methode Parameter Anweisung Bezeihner Typ Bezeihner float myvar Lokale Vereinarung... Anweisungen... square hs / fu alp -Tree- 9 Modellierung mit Bäumen... Syntax arithmetisher Ausdrüke: Operatoraum * + - Infix: (a+)*(-d) Postfix: a + d - * a d Operatoraum: Endknoten ("Blätter") sind Argumente (a,,), die anderen ("inneren") Knoten sind Operatoren hs / fu alp -Tree- 0 5

Bäume: Spezialfall von Graphen 4. Modelle für Graphen und Bäume Siehe auh Math. für Informatiker, hier nur Wiederholung und Einführung der verwendeten Terminologie. Baum als Spezialfall von ungerihteten Graphen: Graph G = (V, K), K V X V gerihteter Graph oder K {{x,y} x,y V} ungerihteter Graph V : Knotenmenge ("vertex") K : Kantenmenge Shreiweise: auh für ungerihtete Graphen (x,y) K hs / fu alp -Tree- Bäume: Spezialfall von Graphen Weg (Pfad) p im Graphen G (V,K) von Knoten a nah Knoten : p = (v,v,...,v n ) mit v =a, v n = und (v i, v i+ ) K Shreiweise: p = a -> Pfadlänge = Anzahl durhlaufener Kanten, Beispiel: Pfadlänge von p = n- p heißt einfah, wenn v i!= v j für i!= j Beispiel: einfaher Pfad der Länge Beispiel: Pfad der Länge 4, niht einfah hs / fu alp -Tree-

Bäume: Spezialfall von Graphen G = (V,K), ungerihtet, heißt zusammenhängend, wenn es zu je zwei Knoten x, y einen Pfad (x->y) git G = (V, K) heißt azyklish (kreisfrei), wenn für alle Knoten x gilt: es git keinen Pfad (x->x) Beispiel: azylisher Graph hs / fu alp -Tree- Bäume Def: Freier Baum azyklisher, ungerihteter, zusammenhängender Graph Beispiel: Beh.: Hinzufügen einer weiteren Kante erzeugt Zyklus hs / fu alp -Tree- 4 7

Bäume Def: Wurzelaum Freier Baum mit ausgezeihnetem Knoten: Wurzel Beispiel: 8 7 4 4 5 5 0 9 9 8 7 0 9 4 5 7 8 0 hs / fu alp -Tree- 5 Terminologie Vorgänger, Elternknoten w jeder Knoten außer der Wurzel hat genau einen direkten Vorgänger (Elternknoten) z.b.: Elternknoten von h ist d e f Vorgänger von Knoten x sind - der direkte Vorgänger und - dessen Vorgänger g h i j oder: alle Knoten auf dem Pfad von der Wurzel w is zum direkten Vorgänger von x z.b.: und w sind Vorgänger von g Ein Pfad (w -> x) von der Wurzel nah x heißt Wurzelpfad. Eigenshaft: x,y Knoten eines Baumes => (x->y) existiert und ist eindeutig. hs / fu alp -Tree- 8

Terminologie Kind, Nahfolger w d e f g h i j ein Knoten hat null, einen oder mehrere direkte Nahfolger (Kinder). y ist Nahfolger von x, wenn y direkter Nahfolger von x ist oder oder wenn y Nahfolger eines direkten Nahfolgers x' von x ist. Bsp: h, i sind Nahfolger von ; Alle Knoten is auf w sind Nahfolger von w. Ahtung: Manhmal wird die Nahfolgerrelation reflexiv definiert, so dass jeder Knoten Nahfolger (Nf) von sih selst ist. Dann Nf und ehte Nf untersheiden. hs / fu alp -Tree- 7 Terminologie Geshwister, Blätter, innere Knoten w d e f g h i j Sind x und y direkte Nahfolger von z, heißen sie Geshwisterknoten. Bsp.: h, i sind Geshwisterknoten. Ein Knoten ohne direkten Nahfolger heißt Blatt, alle anderen sind innere Knoten. Bsp.: g, h, i, j, f sind Blätter, w,, d, e sind innere Knoten. hs / fu alp -Tree- 8 9

Terminologie Grad, Höhe, Tiefe, Größe w d e f g h i j Grad grad (x) eines Knotens x = Anzahl der Kinder von x. Bsp.: grad () =, grad (w) = 5, grad (f) = 0. Grad eines Baums = maximaler Grad seiner Knoten. hs / fu alp -Tree- 9 w Eene 0: Knoten der Tiefe 0 d e f Eene Knoten der Tiefe g h i j Eene Knoten der Tiefe Tiefe d (x) von Knotens x = Anzahl der Kanten auf dem Wurzelpfad zu x. Bsp: d() =, d(w) = 0, d(h) =. Höhe h(t) eines Baums t = maximale Tiefe seiner Knoten. Eene (level) i = Menge der Knoten der Tiefe i Größe s(x) eines Knotens x = Anzahl Nahfolger + (für x selst) Größe S(t) eines Baums t = Anzahl der Knoten von t 0

Terminologie Def: Geordneter Baum 0 4 5 7 8 T 9 9 4 5 7 8 T 0 Ein Wurzelaum heißt geordnet, wenn für jeden Knoten die Menge der Kinder geordnet ist. Bsp: Die Bäume T und T sind als (ungeordnete) Wurzeläume gleih, als geordnete jedoh niht. hs / fu alp -Tree- Terminologie Def: Positionsaum T T 4 5 Ein Wurzelaum heißt n-ärer Positionsaum (n>), wenn jeder Knoten 0 <= k <= n Kinder hat, von denen jedes eine Position i, 0 <= i < n hat. Wihtigster Spezialfall n = : Binäraum Sprehweise: linkes Kind, rehtes Kind Beahte: T und T sind als geordnete Bäume gleih, aer niht als Binäräume. 4 5 hs / fu alp -Tree-

Terminologie Teilaum Ist x ein Kind des Knotens y, dann heißt der von den Nahfolgern von x geildete Baum mit Wurzel x Teilaum von y. Ein Knoten eines Binäraums esitzt einen linken und rehten Teilaum. 4 5 T Die Wurzel des Binäraums T hat den linken Teilaum mit Wurzel und den Knoten,4,5 und den rehten mit Wurzel und Knoten,. hs / fu alp -Tree- Binäraum als Positionsaum a T = {, a { (, { (,d) (, e { (, g) } ) } ), (, { (,f) } ) } T Positionsäume praktish immer nah Position geordnet. Damit geordnete Bäume. d g e Rekursive Definition: Def: Ein inärer Baum T ist - leer - oder er esitzt eine Wurzel r, einen linken Teilaum und einen rehten Teilaum. hs / fu alp -Tree- 4

Rekursive Definition Haskell type: > data BT t = Empty BT (BT t) (BT t) > deriving (Show) Analog Mehrwegäume (k-äre Bäume mit k > ) : Ein k-ärer Baum (oder Mehrwegaum vom Grad k) -ist leer - esteht aus einer Wurzel und k k-ärenteiläumen hs / fu alp -Tree- 5 Terminologie Def: Volle inäre Bäume a Manhmal tehnish vorteilhaft: leeren Baum explizit darstellen. d g e T f Def: Ein voller inärer Baum T ist ein inärer Baum, dessen Knoten - entweder externe Knoten sind - oder den Grad haen Analog: volle k-äre Bäume Beahte: die externe Knoten sind niht die Blätter nah oiger Definition! Das sind die Knoten, die genau zwei externe Knoten als Kinder haen. hs / fu alp -Tree-

Eigenshaften von Bäumen (E) Für die Höhe h eines Mehrwegaums (MW-Baum) vom Grad k mit n Knoten gilt: log k (n+) - <= h < = n Extremfälle für k=: entarteter Baum, Folge d a T e fast vollständiger Baum hs / fu alp -Tree- 7 Vollständige Bäume Def: Ein vollständiger MW-Baum B vom Grad k und Höhe h ist ein Baum, dessen Blätter alle die gleihe Tiefe esitzen und alle inneren Knoten k Nahfolger haen. B heißt fast vollständig, wenn nur die letzte Eene niht voll esetzt ist. a T a vollständig d d e fast vollständig T e f hs / fu alp -Tree- 8 4

Eigenshaften (E) Ein MWaum vom Grad k der Höhe h enthält n <= k h+ - Knoten (E) Ein vollständiger MW-Baum vom Grad k mit n Blattknoten hat n- innere Knoten.... oder: Höhenwahstum eines vollständigen inären Baums um verdoppelt die Anzahl mögliher Knoten. hs / fu alp -Tree- 9 Markierte inäre Bäume Knoten oder Kanten eines Binäraums enthalten meist Daten, z.b. Operatoraum: * + - a d Markierung: Aildung von Werten auf Knoten oder Kanten hs / fu alp -Tree- 0 5

Modelle markierter Bäume a) jedem Knoten wird Wert aus Typ T zugeordnet: B T = {(,m) ist Binäraum mit Knotenmenge V, m:: V -> T} ) inneren Knoten wird Wert aus Typ T zugeordnet,blättern aus T' : B T,T' = {(,m,t) ist Binäraum m:: Innere Knoten -> T, t:: Blätter -> T'} ) Kanten werden Werte aus T zugeordnet, Blättern Werte aus T' : MT,T' = {(,k,t) Binäraum, k::kanten -> T, t:: Blätter in T'} o o 000 00 0 4 * hs / fu alp -Tree- + - T a d o 0