Beispiel: (Strukturerhaltung) Begriffsklärung: (AVL-Baum) Rotationen auf Suchbäumen: Gestaltsanalyse: Lemma: Beweis: siehe Vorlesung
|
|
- Artur Becker
- vor 5 Jahren
- Abrufe
Transkript
1 urc zusätzlice nforderungen bzgl. einer Verteilung der lätter und Höen in Unterbäumen kann man ein egenerieren verindern; spekte: 4 - Vorteil: geringer ufwand für Grundoperationen kann zugesicert werden Nacteil: Strukturinvariante muss eralten werden. - Kosten der Struktureraltung? eispiel: (Struktureraltung) Einfügen von unter Eraltung von Fast- Vollständigkeit Wegen der alancierungseigenscaft mussten alle Knoten vertausct werden. delson-velskij und Landis sclugen folgende alancierungseigenscaft vor: 45 egriffsklärung: (VL-aum) 57 Ein binärer Sucbaum eißt VL-ausgeglicen, öenbalanciert und ein VL-aum, wenn für jeden Knoten K gilt: ie Höe des linken Unterbaums von K untersceidet sic von der Höe des recten Unterbaums öcstens um Poetzsc-Heffter, Universität Kaiserslautern Poetzsc-Heffter, Universität Kaiserslautern 6 Vorgeen: Gestaltsanalyse von VL-äumen Rotationen auf Sucbäumen atenstruktur für VL-äume Heraussucen alancieren nac Einfügen iskussion Gestaltsanalyse: Frage: Hat jeder VL-aum logaritmisce Höe? (ies ist die Voraussetzung, alle Grundoperationen mit logaritmiscen ufwand realisieren zu können.) Lemma: Für die Höe eines VL-aums mit N Knoten gilt: eweis: siee Vorlesung * log (N +) + Rotationen auf Sucbäumen: Eine Rotation ist ein lokale Reorganisation eines Sucbaums, bei der die Sucbaumeigenscaft eralten bleibt, die Höen der Unterbäume aber ggf. verändert werden. Rotation nac rects (nac links entsprecend): Es gilt: - alle Sclüssel aus sind ect kleiner als - alle Sclüssel aus sind ect größer als und ect kleiner als - alle Sclüssel aus sind ect größer als - < Poetzsc-Heffter, Universität Kaiserslautern Poetzsc-Heffter, Universität Kaiserslautern 64
2 oppelrotation links-rects (rects-links entsprecend): uc bei der oppelrotation bleibt die Sucbaum- Eigenscaft eralten. atenstruktur für VL äume: ur Realisierung von VL-äumen geen wir von der Implementierung der natürlicen Sucbäume aus: - ie aumknoten bekommen ein zusätzlices ttribut bf (balance factor), in dem die Höendifferenz von linkem und rectem Unterbaum gespeicert wird. - ie Operationen zum Einfügen und Löscen müssen angepasst werden (ggf. wird dazu auc die atenstruktur erweitert) Poetzsc-Heffter, Universität Kaiserslautern 65 Ein ictionary wird repräsentiert durc ein Objekt, das eine Referenz auf einen inärbaum entält: er leere inärbaum wird durc die null-referenz repräsentiert (leeres ictionary). Jeder Knoten eines nictleeren inärbaums wird durc ein Objekt vom Typ VLNode repräsentiert mit Instanzvariablen für: - den Sclüssel - die aten - die Referenz auf das linke Kind - die Referenz auf das recte Kind - die Höendifferenz bf ie aumknoten sind gekapselt und können von außen nur indirekt über die Grundoperationen manipuliert werden. atenstruktur-invarianten: - Sclüssel kommen nict doppelt vor. - ie inärbäume sind Sucbäume. - ie Höendifferenz ist korrekt belegt Poetzsc-Heffter, Universität Kaiserslautern 66 class VLTreeictionary implements ictionary { private VLNode root; private static class VLNode { private int key; private Object data; private VLNode left, rigt; private int bf; private VLNode( int k, Object d ) { key = k; data = d; public VLTreeictionary() { root = null; // leeres ictionary public Object get( int key ) { private VLNode searcnode( VLNode current, int key) { public void put(int key, Object value){ private VLNode insertnode( VLNode current, int key, Object v ){ private VLNode rotate(vlnode current){ public void remove( int key ) { trow RuntimeException("not available"); Poetzsc-Heffter, Universität Kaiserslautern 67 Heraussucen: - Ist der Wurzelsclüssel gleic dem gesucten Sclüssel, terminiert das Verfaren. - Ist der Wurzelsclüssel größer als der gesucte Sclüssel, suce im linken Unterbaum weiter. - Ist der Wurzelsclüssel kleiner als der gesucte Sclüssel, suce im recten Unterbaum weiter. public Object get( int key ) { VLNode tn = searcnode(root,key); if( tn == null ) { return null; else { return tn.data; private VLNode searcnode( VLNode current, int key) { if( current!=null && key!= current.key ) { if( current.key > key ) { return searcnode( current.left, key ); else { // current.key < key return searcnode( current.rigt, key ); return current; Poetzsc-Heffter, Universität Kaiserslautern 68
3 Einfügen: eispiel: Entwicklung des lgoritmus in 4 Scritten: Einfügen von 33: 45. Einfügen one ktualisieren von bf und Rotation. ktualisieren von bf, aber one Rotation ktualisieren von bf mit ufruf der Rotation 4. Rotation mit ktualisieren von bf an den rotierten Knoten Einfügen one ktualisieren von bf und Rotation : - Neue Knoten werden immer als lätter eingefügt. - ie Position des lattes wird durc den Sclüssel des neuen Knotens festgelegt. - eim ufbau eines aumes ergibt der erste Knoten die Wurzel. - Ein Knoten wird in den linken Unterbaum der Wurzel eingefügt, wenn sein Sclüssel kleiner ist als der Sclüssel der Wurzel; in den recten, wenn er größer. ieses Verfaren wird rekursiv fortgesetzt, bis die Einfügeposition bestimmt ist Poetzsc-Heffter, Universität Kaiserslautern class VLTreeictionary implements ictionary { private VLNode root; public void put( int key, Object value ){ if( root == null ) { root = new VLNode(key, value); else { VLNode res = insertnode(root,key,value); if( res!=null ) root = res; Poetzsc-Heffter, Universität Kaiserslautern 6 49 Rekursives ufsucen der Einfügestelle und Einfügen: void insertnode( VLNode current, int key, Object v ) { // pre: current!= null // if( key < current.key ) { if ( current.left == null ) { current.left = new VLNode(key,v); else { insertnode( current.left, key, v); else if( key > current.key ) { if ( current.rigt == null ) { current.rigt = new VLNode(key,v); else { insertnode( current.rigt, key, v); else { // key == current.key current.data = v;. ktualisieren von bf, aber one Rotation lgoritmisces Vorgeen: - Einfügen wie oben. - ktualisieren von bf soweit nötig: er Höendifferenz bf kann sic nur bei Knoten ändern, die auf dem Pfad von der Wurzel zum eingefügten Knoten liegen. Nur an diesen Knoten kann die VL-Eigenscaft verletzt werden. - estimmen des kritiscen Knotens KK; das ist der näcste Elternknoten zum eingefügten Knoten mit bf=. - Rotiere bei KK, Rotationstyp ergibt sic aus Pfad von eingefügtem Knoten zu KK. Wir werden zeigen, dass durc die Rotation der Unterbaum mit Wurzel KK die gleice Höe erält, die er vor dem Einfügen atte. ie alancierungsfaktoren an Knoten oberalb von KK braucen also nict aktualisiert zu werden Poetzsc-Heffter, Universität Kaiserslautern Poetzsc-Heffter, Universität Kaiserslautern 6
4 Einfügen mit ktualisieren von bf: private boolean insertnode ( VLNode current, int key, Object v ){ /* pre: current!= null ens: result==true, wenn (current) > old((current)) result==false, sonst */ if( key < current.key ) { if( current.left == null ) { current.left = new VLNode(key,v); current.bf++; // current.bf < return (current.bf>); else { if( insertnode(current.left,key,v) ){ current.bf++; return (current.bf>); else { return false; else if( key > current.key ) { // symmetrisc auf recter Seite else { // key == current.key current.data = v; return false; Poetzsc-Heffter, Universität Kaiserslautern 63 emerkung: ie obige Fassung veranscaulict die Vorgeensweise, auf dem Rückweg von einem rekursiven bstieg Operationen auszufüren. ie obige Fassung wird so nict benötigt, da bf nur bis zu kritiscen Knoten zu aktualisieren ist. Ist der kritisce Knoten gefunden, wird rotiert und damit die ktualisierungen oberalb unnötig. 3. Einfügen mit ktualisieren von bf und Rotation: Problem: ie Rotation mact es nötig, den Elternknoten des kritiscen Knotens zu modifizieren. Idee: Statt true/false liefert die Einfüge-Operation: - null, wenn sic die Höe geändert at. - ie Referenz auf den möglicerweise rotierten Unterbaum, wenn sic die Höe nict geändert at; desalb ist ggf. root zu modifizieren: public void put( int key, Object val ) { if( root == null ) { root = new VLNode(key, value); else { VLNode res = insertnode(root,key,val); if( res!=null ) { root = res; Poetzsc-Heffter, Universität Kaiserslautern 64 private VLNode insertnode ( VLNode current, int key, Object v ) { if( key < current.key ) { if( current.left == null ) { current.left = new VLNode(key,v); current.bf++; // current.bf < return (current.bf>)? null : current; else { VLNode res = insertnode(current.left,key,v); if( res == null ) { current.bf++; if( current.bf < ) { return (current.bf>)?null:current; else { return rotate( current ); else { current.left = res; return current; else if( key > current.key ) { // symmetrisc auf recter Seite else { // key == current.key current.data = v; return current; 4. Rotation mit ktualisieren von bf: Wir betracten die Situation, dass bf im kritiscen Knoten KK auf gestiegen ist, also links eingefügt wurde. ie Unterbäume von KK bezeicnen wir mit li, li.li, li.re etc. a (li) = (re)+, kann der Wurzelknoten von li nict der neu eingefügte Knoten KN sein. Es gibt vier untersciedlice Fälle: - KN ist in li.li eingefügt (rects-rotation) - KN ist in li.re eingefügt; bf ist abängig davon, ob KN neue Wurzel von li.re (links-rects-rotation) KN in li.re.li eingefügt KN in li.re.re eingefügt Fall: links-links vor Einfügen: + + (links-rects-rotation) (links-rects-rotation) Poetzsc-Heffter, Universität Kaiserslautern Poetzsc-Heffter, Universität Kaiserslautern 66
5 nac Einfügen: eacte: ie Höe nac der Rotation ist gleic der Höe vor dem Einfügen. amit wird die VL- Eigenscaft der aumteile oberalb des kritiscen Knotens nict beeinflusst. Fall: links-rects: vor Einfügen: nac Rotation: (der Fall rects-rects get analog) Poetzsc-Heffter, Universität Kaiserslautern Poetzsc-Heffter, Universität Kaiserslautern 68 nac Einfügen links-rects: nac Einfügen links-rects-links: nac Rotation: nac Rotation: (der Fall rects-links get analog) (der Fall rects-links-rects get analog) Poetzsc-Heffter, Universität Kaiserslautern Poetzsc-Heffter, Universität Kaiserslautern 63
6 nac Einfügen links-rects-rects: nac Rotation: Poetzsc-Heffter, Universität Kaiserslautern 63 - (der Fall rects-links-links get analog) - - private VLNode rotate( VLNode current ) { // pre: current!= null && current.bf == // if( current.bf == ) { VLNode cleft = current.left; if( cleft.bf == ) { // Variante LL current.left = cleft.rigt; current.bf = ; cleft.rigt = current; cleft.bf = ; return cleft; else { // LR-Varianten VLNode clrigt = cleft.rigt; current.left = clrigt.rigt; cleft.rigt = clrigt.left; clrigt.left = cleft; clrigt.rigt = current; if( clrigt.bf == ) { // LR(a) current.bf = -; cleft.bf = ; else if( clrigt.bf == - ) { // LR(b) current.bf = ; cleft.bf = ; else { // degenerierter Fall current.bf = ; cleft.bf = ; clrigt.bf = ; return clrigt; else { // current.bf == - ) // symmmetrisc fuer rects Poetzsc-Heffter, Universität Kaiserslautern 63 iskussion: eim Einfügen eines Knotens at der rebalancierte Unterbaum stets die gleice Höe wie vor dem Einfügen: - er restlice aum wird nict beeinflusst. - Höcstens eine Rotation wird benötigt. eim Löscen können ungünstigsten Falls so viele Rotationen erforderlic sein, wie es Knoten auf dem Pfad von der Löscposition bis zur Wurzel gibt. a der ufwand für eine Rotation aber konstant ist, ergeben sic maximal O(log N) Operationen. egriffsklärung: (Hasfunktion, -tabelle) Seien - S die Menge der möglicen Sclüsselwerte (Sclüsselraum) und - die Menge von dressen in einer Hastabelle (im Folgenden ist immer die Indexmenge.. m- eines Feldes). Eine Hasfunktion : S ordnet jedem Sclüssel eine dresse in der Hastabelle zu. ls Hastabelle (HT) der Größe m bezeicnen wir einen Speicerbereic, auf den über die dressen aus mit konstantem ufwand (unabängig von m) zugegriffen werden kann.. Hasing/Streuspeicerung nstatt durc scrittweises Vergleicen von Sclüsseln auf einen atensatz zuzugreifen, versuct man bei Has- oder Streuspeicerverfaren aus dem Sclüssel die Positionsinformation des atensatzes (z.. den Feldindex) zu berecnen. Für viele praktisc relevante Szenarien erreict man dadurc atenzugriff mit konstantem ufwand. Entält S weniger Elemente als, kann injektiv sein: Für alle s,t in S: s t => (s) (t) d.. die Hasfunktion ordnet jedem Sclüssel eine eineindeutige dresse zu. ann ist perfektes Hasing möglic. ndernfalls können Kollisionen auftreten: Poetzsc-Heffter, Universität Kaiserslautern Poetzsc-Heffter, Universität Kaiserslautern 634
7 Klassifikation von Hasverfaren: egriffsklärung: (Kollision, Synonym) wei Sclüssel s,t kollidieren bezüglic einer Hasfunktion, wenn (s) = (t). ie Sclüssel s und t nennt man dann Synonyme. ie Menge der Synonyme bezüglic einer dresse a aus eißt die Kollisionsklasse von a. Ist scon ein atensatz mit Sclüssel s in der Hastabelle gespeicert, nennt man einen atensatz mit einem Synonym von s einen Überläufer. nforderungen an Hasfunktionen: Eine Hasfunktion soll - sic einfac und effizient berecnen lassen (konstanter ufwand bzgl. S) - zu einer möglicst gleicmäßigen elegung der Hastabelle füren - möglicst wenige Kollisionen verursacen Poetzsc-Heffter, Universität Kaiserslautern 635 Hasverfaren untersceiden sic durc die Hasfunktion durc die Kollisionsauflösung: - extern: Überläufer werden in atenstrukturen außeralb der Hastabelle gespeicert. - offen: Überläufer werden an noc offenen Positionen der Hastabelle gespeicert. durc die Wal der Größe von der Hastabelle: - statisc: ie Größe wird bei der Erzeugung festgelegt und bleibt unverändert. - dynamisc: ie Größe kann angepasst werden. Wir betracten im Folgenden eine Realisierung einer statiscen Hastabelle mit externer Kollisionsauflösung durc ein ictionary mit binärer Suce. Hasfunktion: Entsceidend ist, dass die Hasfunktion die Sclüssel gut streut. Verbreitetes Verfaren: - Wäle eine Primzal als Hastabellen-Größe. - Wäle den ganzzaligen ivisionsrest als Haswert: private int as( int key ) { return Mat.abs(key) % astable.lengt; Poetzsc-Heffter, Universität Kaiserslautern 636 emerkung: Sclect wäre beispielsweise eine Wal von m = i als Tabellengröße bei dem ivisionsrest-verfaren, da bei inärdarstellung der Sclüssel dann nur die letzten i its relevant sind. atenstruktur: Wir realisieren eine Hastabelle als Implementierung der Scnittstelle ictionary: class Hasictionary implements ictionary { int[] astable; Object[] datatable; private ictionary[] overflowtable; public Hasictionary( int tabsize ) { /* tabsize sollte eine Primzal sein */ astable = new int[tabsize]; datatable = new Object[tabsize]; overflowtable = new ictionary[tabsize]; private int as( int key ) { public Object get( int key ) { public void put (int key,object v ){ public void remove( int key ) { Poetzsc-Heffter, Universität Kaiserslautern 637 Sei s ein Sclüssel, (s) sein Haswert. er atenstruktur Hasictionary liegen folgende Invarianten zugrunde: - ie Hastabelle entält den atensatz zu s, wenn astable[ (s) ] == key datatable[ (s) ]!= null ie aten liefert dann datatable[ (s) ]. - lle eingetragenen Elemente der Kollisionsklasse zu (s) befinden sic in der Hastabelle mit Index (s) oder in overflow[(s)]. Wegen Löscens ist es möglic, dass die Hastabelle zu (s) keinen Eintrag at, sic trotzdem aber Einträge in der Überlauftabelle zu (s) befinden! Löscen: public void remove( int key ) { int ix = as(key); if( astable[ix] == key && datatable[ix]!= null ) { datatable[ix] = null; else if( overflowtable[ix]!= null ) { overflowtable[ix].remove(key); Poetzsc-Heffter, Universität Kaiserslautern 638
8 Sucen: public Object get( int key ) { int ix = as(key); if( astable[ix] == key && datatable[ix]!= null ) { return datatable[ix]; else if( overflowtable[ix] == null ) { return null; else { Object v = overflowtable[ix].get(key); if( datatable[ix] == null ) { datatable[ix] = v; overflowtable[ix].remove(key); return v; Einfügen: public void put ( int key, Object value ) { if( value!= null ) { int ix = as(key); if( datatable[ix] == null ) { astable[ix] = key; datatable[ix] = value; else if( astable[ix] == key ) { datatable[ix] = value; else { if( overflowtable[ix] == null ) { overflowtable[ix] = new intreeictionary(); overflowtable[ix].put(key,value); Poetzsc-Heffter, Universität Kaiserslautern Poetzsc-Heffter, Universität Kaiserslautern 64 iskussion: ie Komplexität der Operationen einer Hastabelle ängt ab von: - der Hasfunktion und dem Füllungsgrad der Tabelle - dem Verfaren zur Kollisionsauflösung ei guter Hasfunktion und kleinem Füllungsgrad kommt man im Mittel mit konstantem ufwand aus. emerkung: Hasverfaren sind ein eispiel dafür, dass man sic nict immer für lgoritmen mit asymptotisc gutem Veralten interessiert. ie Hasfunktion wird dabei benutzt, um komplexere Sclüssel in einfacere, meist ganzzalige Sclüssel abzubilden. a Injektivität meist nur annäerungsweise erreict werden kann, brauct man Kollisionsauflösung. Meist verwendet man dazu offene Kollisionsauflösung. eispiel: (Strings als Sclüssel) In ezeicnerumgebungen (vgl. ESSy, Folie 4) und eklarationstabellen von Übersetzern sind die Sclüssel in natürlicerweise eicenreien. urc Hasing wird jedem ezeicner eine natürlice al als Sclüssel zugeordnet. Unter diesem alsclüssel wird die eklarationsinformation verwaltet. nwendung von Hasverfaren: Hasverfaren werden auc verwendet um Sclüsselräume zu vereinfacen. Wir betracten ier nwendungen mit eicenreicen als Sclüssel. eicenreien als Sclüssel: - Vorteile: bzgl. nwendung der sic direkt ergebende Sclüsseltyp; nict längenbescränkt. - Nacteile: Sclüsselvergleice ser teuer; nict zur Indizierung geeignet Poetzsc-Heffter, Universität Kaiserslautern 64 emerkung: ie praktisce edeutung von Hasverfaren zur Sclüsselvereinfacung wird auc durc die Metode /** Returns a as code value for te object. * Tis metod is supported for te benefit * of astables suc as tose provided by * java.util.hastable */ public native int asode(); in der Java Klasse Object verdeutlict Poetzsc-Heffter, Universität Kaiserslautern 64
9 eobactermuster: ls eispiel einer Klasse, die Objekte nur über deren Scnittstelle ansprict, betracten wir eine nwendung des eobactermusters. ktie name: String kurswert: int * * eobacter void steigen(ktie a) void fallen(ktie a) a über die eobacter nicts bekannt ist, realisiert man sie sinnvollerweise durc einen Scnittstellentyp: interface eobacter { void steigen( ktie a ); void fallen( ktie a ); // Fortsetzung näcste Folie ie ssoziation zwiscen ktien und eobactern implementieren wir durc eine Liste in der Klasse ktie, die alle eobacter der Klasse entält: oersianer oersianer public class ktie { private String name; private int kurswert; private rraylist beobacterliste; ei Realisierung der Klasse ktie ist nur bekannt, dass die eobacter über das Steigen und Fallen des ktienkurses informiert werden wollen. Wie eobacter auf Änderungen reagieren, ist nict bekannt. ie Klassen können also getrennt entwickelt werden. emerkung: as eispiel illustriert eine nwendung des Entwurfmusters eobacter (engl. observer ). ktie( String n, int anfangswert ){ name = n; kurswert = anfangswert; beobacterliste = new rraylist(); public String getname(){ return name; public int getkurswert(){ return kurswert; // Fortsetzung näcste Folie Poetzsc-Heffter, Universität Kaiserslautern Poetzsc-Heffter, Universität Kaiserslautern 644 eim Setzen des Kurswertes werden auc die eobacter benacrictigt: // Fortsetzung von voriger Folie void setkurswert( int neuerwert ){ int alterwert = kurswert; kurswert = neuerwert>? neuerwert : ; ListIterator it = beobacterliste.listiterator(); if( kurswert > alterwert ) { wile( it.asnext() ){ eobacter b = (eobacter)it.next(); b.steigen( tis ); else { wile( it.asnext() ){ eobacter b = (eobacter)it.next(); b.fallen( tis ); public void anmeldeneobacter( eobacter b ) { beobacterliste.add( b ); ur Illustration von eobacterimplementierungen betracten wir einen oersianer der - von der beobacteten ktien kauft, wenn deren Kurs unter 3 Euro fällt und er noc keine besitzt, - verkauft, wenn der Kurs über 4 Euro steigt. public class oersianer implements eobacter{ private boolean besitzt = false; void fallen( ktie a ) { if( a.getkurswert() < 3 &&!besitzt ) { System.out.println("Kauf "+a.getname()); besitzt = true; void steigen( ktie a ) { if( a.getkurswert() > 4 && besitzt ) { System.out.print("Verkauf "+a.getname()); System.out.println(); besitzt = false; nwendungsfragment: ktie vw = new ktie("vw", 354); eobacter peter = new oersianer(); vw.anmeldeeobacter( peter ); Poetzsc-Heffter, Universität Kaiserslautern Poetzsc-Heffter, Universität Kaiserslautern 646
RWTH Aachen, Lehrstuhl für Informatik IX Kapitel 3: Suchen in Mengen - Datenstrukturen und Algorithmen - 51
RWTH Aacen, Lerstul für Informatik IX Kapitel 3: Sucen in Mengen - Datenstrukturen und Algoritmen - 51 Sucbäume Biser betractete Algoritmen für Suce in Mengen Sortierte Arrays A B C D - Nur sinnvoll für
Übersicht. Einführung Universelles Hashing Perfektes Hashing
Hasing Übersict Einfürung Universelles Hasing Perfektes Hasing 2 Das Wörterbuc-Problem Gegeben: Universum U = [0 N-1], wobei N eine natürlice Zal ist. Ziel: Verwalte Menge S U mit folgenden Operationen.
6. Binäre Suchbäume. Binäre Suchbäume
6. Binäre Sucbäume Natürlice binäre Sucbäume - Begriffe und Definitionen - Grundoperationen: Einfügen, sequentielle Suce, direkte Suce, öscen - Bestimmung der mittleren Zugriffskosten Balancierte Binärbäume
Binäre Suchbäume. 6. Binäre Suchbäume. Einfügen in binären Suchbäumen
6. Binäre Sucbäume Natürlice binäre Sucbäume - Begriffe und Definitionen - Grundoperationen: Einfügen, sequentielle Suce, direkte Suce, öscen - Bestimmung der mittleren Zugriffskosten Balancierte Binärbäume
Software Entwicklung 1
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Abstrakte Datentypen: Maps Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 48 Abstrakte Datentypen:
Binäre Suchbäume. Organisatorisches. VL-10: Binäre Suchbäume. (Datenstrukturen und Algorithmen, SS 2017) Gerhard Woeginger.
Organisatorisches VL-10: inäre Suchbäume (Datenstrukturen und lgorithmen, SS 17) Gerhard Woeginger Vorlesung: Gerhard Woeginger (Zimmer 4024 im E1) Sprechstunde: Mittwoch 11: 12:00 Übungen: Tim Hartmann,
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
Übersicht. Datenstrukturen und Algorithmen. Übersicht. Motivation. Vorlesung 10: Binäre Suchbäume
Übersicht Datenstrukturen und lgorithmen Vorlesung : Joost-Pieter Katoen Lehrstuhl für Informatik 2 Software Modeling and Verification Group http://moves.rwth-aachen.de/teaching/ss-/dsal/ 1 Suche Einfügen
Bäume. Prof. Dr. Christian Böhm. in Zusammenarbeit mit Gefei Zhang. WS 07/08
Bäume Prof. Dr. Christian Böhm in Zusammenarbeit mit Gefei Zhang http://www.dbs.ifi.lmu.de/lehre/nfinfosw WS 07/08 2 Ziele Standardimplementierungen für Bäume kennen lernen 3 Bäume (abstrakt) Bäume sind
Bäume. Martin Wirsing. Ziele. Implementierung von Knoten. Bäume (abstrakt) Standardimplementierungen für Bäume kennen lernen
2 Ziele Bäume Standardimplementierungen für Bäume kennen lernen Martin Wirsing in Zusammenarbeit mit Michael Barth, Philipp Meier und Gefei Zhang 02/0 4 Bäume (abstrakt) Implementierung von Knoten Bäume
Software Entwicklung 1
Software Entwicklung 1 Annette Bieniusa AG Softech FB Informatik TU Kaiserslautern Was gefällt Ihnen? Sehr ausführliches Skript Fragen / Aufgaben in der Vorlesung Praktische Beispiele Tolle Aufgabenblätter
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
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,
! 1. Rekursive Algorithmen.! 2. Rekursive (dynamische) Datenstrukturen. II.3.2 Rekursive Datenstrukturen - 1 -
! 1. Rekursive Algorithmen! 2. Rekursive (dynamische) Datenstrukturen II.3.2 Rekursive Datenstrukturen - 1 - Ausdruck Ausdruck Grundwert ( Typ ) Präfix-Operator Name Methodenaufruf [ Ausdruck ] ( Ausdruck
B6.1 Introduction. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. B6.1 Introduction. B6.3 Analyse. B6.4 Ordnungsbasierte Methoden
Algorithmen und Datenstrukturen 11. April 2018 B6. Binäre Suchbäume a Algorithmen und Datenstrukturen B6. Binäre Suchbäume 1 Marcel Lüthi and Gabriele Röger Universität Basel 11. April 2018 a Folien basieren
Geordnete Binärbäume
Geordnete Binärbäume Prof. Dr. Martin Wirsing in Zusammenarbeit mit Gilbert Beyer und Christian Kroiß http://www.pst.ifi.lmu.de/lehre/wise-09-10/infoeinf/ WS 09/10 Einführung in die Informatik: Programmierung
Bäume. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 10: Collections 4. Inhalt. Bäume. Einführung. Bäume.
Universität Osnabrück 1 Bäume 3 - Objektorientierte Programmierung in Java Vorlesung 10: Collections 4 Einführung Bäume sind verallgemeinerte Listenstrukturen Lineare Liste Jedes Element hat höchstens
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
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
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
Ü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 (
ALP II Dynamische Datenmengen
ALP II Dynamische Datenmengen Teil III Iteratoren Iterator-Objekt O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 22. ALP2-Vorlesung, M. Esponda 2 Motivation: Iteratoren Wir haben für die Implementierung
4.3.2 Ableitungsregeln
Vorbereitungskurs auf die Aufnameprüfung der ETH: Matematik 4.3.2 Ableitungsregeln Der Differentialquotient [s. 43] zur Definition der Ableitung beinaltet eine Grenzwertbildung Limes), welce meist dadurc
Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
3. Funktionales Programmieren 3.2 Algorithmen auf Listen und Bäumen. Heapsort verfeinert die Idee des Sortierens durch Auswahl:
Heapsort 3. Funktionales Programmieren 3.2 Algorithmen auf Listen und Bäumen Heapsort verfeinert die Idee des Sortierens durch Auswahl: Minimum bzw. Maximum wird nicht durch lineare Suche gefunden, sondern
Bäume. Martin Wirsing. Ziele. Baumknoten. Bäume - 2-dimensionale Listen. Standardimplementierungen für Bäume kennenlernen
2 Ziele Bäume Standardimplementierungen für Bäume kennenlernen Das Composite-Muster kennenlernen Martin Wirsing in Zusammenarbeit mit Matthias Hölzl, Piotr Kosiuczenko, Dirk Pattinson 06/03 3 4 Bäume -
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Sortierte Folgen Maike Buchin 30.5., 1.6., 13.6.2017 Sortierte Folgen Häufiges Szenario: in einer Menge von Objekten mit Schlüsseln (aus geordnetem Universum) sollen Elemente
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:
Bemerkung: Heapsort. Begriffsklärung: (zu Bäumen) Begriffsklärung: (zu Bäumen) (2) Heapsort verfeinert die Idee des Sortierens durch Auswahl:
Heapsort Bemerkung: Heapsort verfeinert die Idee des Sortierens durch Auswahl: Minimum bzw. Maximum wird nicht durch lineare Suche gefunden, sondern mit logarithmischem Aufwand durch Verwendung einer besonderen
Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6
Robert Elsässer u.v.a. Paderborn, 29. Mai 2008 Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6 Aufgabe 1 (6 Punkte): Zunächst sollte klar sein, daß ein vollständiger Binärer
Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt
Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt Aufgaben zur Klausur Objektorientierte Programmierung im WS 2003/04 (IA 252) Zeit: 90 Minuten erlaubte Hilfsmittel: keine
Typische Struktur eines Baumknotens ( Class TreeNode ):
inäre Suchbäume 1 Suchbäume unterstüten alle unten angegebenen Operationen für dynamische Mengen K effiient: Search(K,k) ---- Suche ein Element x von K mit Schlüssel k. Insert(K,x) ---- Füge das Element
r 11 r 12 r 13 0 r 22 r r 33 l ik r kj die Gleichungen: k= (II) 2 (I) = 3 2 1
Tecnisce Universität Berlin Wintersemester 004/005 Fakultät II; Institut für Matematik Prof. Dr. G. Bärwolff/C. Mense.0.005 Probeklausur zur LV Numerik für Informatiker en Aufgabe a Berecnen Sie die LU-Zerlegung
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
8. Differentiation. f(x) f(x 0 ) =: f,x0 (x) lim
8. Differentiation Sei I R ein Intervall. Eine Funktion f : I R eißt in x 0 I differenzierbar (Steno: diffbar), wenn der für x I, x x 0 erklärte Differenzenquotient f(x) f(x 0 ) =: f,x0 (x) nac x 0 stetig
TU Dresden Fakultät Mathematik Institut für Numerische Mathematik 1
TU Dresden Fakultät Matematik Institut für Numerisce Matematik Lösung zur Aufgabe 4 (a) des 9. Übungsblattes größtmöglicer Definitionsbereic: Die Funktion ist überall definiert, außer an der Stelle = 3
Anleitung zur Berechnung von Ableitungsfunktionen
Matematik 11d 7..009 Stefan Krissel Anleitung zur Berecnung von Ableitungsfunktionen Prolog Es gibt nict das Verfaren zur Berecnung der Ableitungsfunktion, genausowenig wie es das Verfaren zum Screiben
Tutoraufgabe 1 (Implementierung eines ADTs):
Prof. aa Dr. E. Ábrahám Datenstrukturen und Algorithmen SS Übungsblatt (Abgabe.05.0) F. Corzilius, S. Schupp, T. Ströder Allgemeine Hinweise: Die Hausaufgaben sollen in Gruppen von je bis Studierenden
Informatik II, SS 2016
Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 10 (27.5.2016) Binäre Suchbäume II Algorithmen und Komplexität Zusätzliche Dictionary Operationen Dictionary: Zusätzliche mögliche Operationen:
Grundlagen der Informatik / Algorithmen und Datenstrukturen. Aufgabe 139
Aufgabe 139 Aufgabe 139 Aufgabenstellung Stellen Sie den folgenden in Feldbaum-Darstellung beschriebenen Binärbaum a) graphisch (welcher Knoten ist die Wurzel?), b) in halbsequentieller Darstellung, c)
Vorlesung für Schüler
Universität Siegen Facbereic Matematik Vorlesung für Scüler 1.12.2 Emmy-Noeter-Campus Prof. Dr. H. J. Reinardt Computerlösungen dynamiscer Probleme Zusammenfassung Es werden zunäcst einface dynamisce Probleme
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
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
Software Entwicklung 1. Rekursion. Beispiel: Fibonacci-Folge I. Motivation. Annette Bieniusa / Arnd Poetzsch-Heffter
Software Entwicklung 1 Annette Bieniusa / Arnd Poetzsch-Heffter AG Softech FB Informatik TU Kaiserslautern Rekursion Bieniusa/Poetzsch-Heffter Software Entwicklung 1 2/ 27 Motivation Beispiel: Fibonacci-Folge
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,...
VORKURS MATHEMATIK DRAISMA JAN, ÜBERARBEITET VON BÜHLER IRMGARD UND TURI LUCA
VORKURS MATHEMATIK DRAISMA JAN, ÜBERARBEITET VON BÜHLER IRMGARD UND TURI LUCA Mittwoc: Ableiten, Kurvendiskussionen, Optimieren, Folgen und Reien Betracte auf einem Hügel einen Weg, dessen Seitenansict
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
Abschlussklausur Lösung. Bitte in Druckschrift leserlich ausfüllen!
Informatik für Informationsmanager II SS 2006 Universität Koblenz-Landau Institut für Informatik Prof. Dr. Steffen Staab Dr. Manfred Jackel Abschlussklausur 04.08.2006 Lösung Bitte in Druckschrift leserlich
Einstieg in die Informatik mit Java
1 / 15 Einstieg in die Informatik mit Java Collections Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 15 1 Überblick Collections 2 Hierarchie von Collections 3 Verwendung
Suchen und Sortieren Binäre Suchbäume
Löschen (Folie 63, Seite 34 im Skript) In der Klasse Searchtree K, : Java public void delete(k k) { if(root == null) return; if(root.left == null && root.right == null && root.key == k) root = null; else
Algorithmik 1. Organisatorisches. Friedrich-Alexander-Universität Erlangen-Nürnberg. Informatik 2 Programmiersysteme Martensstraße Erlangen
Organisatorisches lgorithmik 1 Evaluation der Lehre Unmittelbar vor der Vorlesung Gerücht Super-GU Näheres später Prof. r. Michael Philippsen Friedrich-leander-Universität Erlangen-Nürnberg Informatik
Lösung - Serie 3. D-MAVT/D-MATL Analysis I HS 2017 Dr. Andreas Steiger. 1. MC-Aufgaben (Online-Abgabe)
D-MAVT/D-MATL Analysis I HS 07 Dr. Anreas Steiger Lösung - Serie 3. MC-Aufgaben (Online-Abgabe). Es sei ie Funktion f : [0, ) [0, ) efiniert urc f() = ln( + ), wobei er Logaritmus ln zur Basis e ist. Welce
Aufgaben NF 11; Seite 1
Aufgabe Ref 1: Gegeben ist die Klasse Schueler public class Schueler { private String name, vorname, kurs; // Konstruktor public Schueler(String n, String vn, String k) { name=n; vorname=vn; kurs=k; public
In C und Java müssen Variablen und Methodenergebnisse durch Typangaben erläutert werden. Welche der folgenden Aussagen sind korrekt und welche nicht:
Typprüfung (Compiler / Laufzeit) In C und Java müssen Variablen und Methodenergebnisse durch Typangaben erläutert werden. Welche der folgenden Aussagen sind korrekt und welche nicht: 1) Der Compiler prüft
Programmieren in Java
Programmieren in Java Vorlesung 05: Generics Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2015 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 19 Inhalt Generics
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
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1 Kapitel 11 Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 2 Ziele Implementierungen für
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 16/17. Kapitel 13. Listen. Listen 1
Kapitel 13 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 15/16. Kapitel 12. Listen. Listen 1
Kapitel 12 Listen Listen 1 Ziele Implementierungen für Listen kennenlernen Einfach verkettete und doppelt verkettete Listen verstehen Listen-Implementierungen in der Java-Bibliothek kennenlernen Durch
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,...
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
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
6. Die Exponentialfunktionen (und Logarithmen).
6- Funktionen 6 Die Eponentialfunktionen (und Logaritmen) Eine ganz wictige Klasse von Funktionen f : R R bilden die Eponentialfunktionen f() = c ep( ) = c e, ier sind, c feste reelle Zalen (um Trivialfälle
( ), und legen deshalb eine Ebene fest. Als Aufpunkt dient ein beliebiger Punkt von g oder h, als Spannvektoren
Lösungen zur analytiscen Geometrie, Buc S. 9f. a) E in die Parameterform umwandeln: x = x + x + Wäle: x = ; x = x = + E : X = x x x = + + = + In F einsetzen: + + = + = = In E einsetzen: s: X = + + ( )
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
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
Informatik II Übung 7 Gruppe 7
Informatik II Übung 7 Gruppe 7 Leyna Sadamori leyna.sadamori@inf.ethz.ch Informatik II Übung 7 Leyna Sadamori 10. April 2014 1 Administratives Nächste Übung fällt leider aus! Bitte eine andere Übung besuchen.
4.4.1 Implementierung vollständiger Bäume mit Feldern. Reguläre Struktur: Nachfolger des Knoten i sind die Knoten 2*i und 2*i+1.
4.4 Implementierung von Bäumen 4.4.1 Implementierung vollständiger Bäume mit Feldern 1 3 2 7 9 3 4 8 5 17 12 10 6 7 8 13 11 18 9 10 Reguläre Struktur: Nachfolger des Knoten i sind die Knoten 2*i und 2*i+1.
Stacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012
, Queues & Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 19. September 2012 ODE/FHTBM, Queues & 19. September 2012 1/42 Datenstrukturen Elementare Datenstrukturen
13. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Sortierte Liste 40 40 Motivation: Stapel ( push, pop, top, empty ) Wir brauchen einen neuen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (12 Hashverfahren: Verkettung der Überläufer) Prof. Dr. Susanne Albers Möglichkeiten der Kollisionsbehandlung Kollisionsbehandlung: Die Behandlung
Institut für Programmierung und Reaktive Systeme 17. Juli Programmieren II. Übungsklausur
Technische Universität Braunschweig Dr. Werner Struckmann Institut für Programmierung und Reaktive Systeme 17. Juli 2015 Hinweise: Klausurtermine: Programmieren II Übungsklausur Programmieren I: 7. September
Unterlagen zu endlichen Körpern. Erhard Aichinger
Unterlagen zu endlicen Körpern Erard Aicinger Linz, im November 2005 Alle Recte vorbealten 1 KAPITEL 1 Endlice Körper 1 Definition endlicer Körper DEFINITION 11 Ein Ring mit Eins R R,,,, 0, 1 ist ein
Mengen. Binäre Suchbäume. Mengen: Anwendungen (II) Mengen: Lösung mit Listen 12/3/12. Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps
// Mengen Binäre Suchbäume Mengen, Funktionalität, Binäre Suchbäume, Heaps, Treaps n Ziel: ufrechterhalten einer Menge (hier: ganzer Zahlen) unter folgenden Operationen: n eines Elements n eines Elements
Datenstruktur Baum Software Entwicklung 1
Datenstruktur Baum Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller Bäume gehören zu den wichtigsten in der Informatik auftretenden Datenstrukturen. [Ottmann, Widmayer: Algorithmen
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
Schnittstellen, Stack und Queue
Schnittstellen, Stack und Queue Schnittstelle Stack Realisierungen des Stacks Anwendungen von Stacks Schnittstelle Queue Realisierungen der Queue Anwendungen von Queues Hinweise zum Üben Anmerkung: In
Info B VL 11: Innere Klassen/Collections
Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections
1 Analytische Geometrie und Grundlagen
$Id: vektor.tex,v 1.41 2018/05/08 15:50:54 k Exp $ 1 Analytisce Geometrie und Grundlagen 1.5 Abstände und Winkel Am Ende der letzten Sitzung atten wir eine metrisce Form des Stralensatzes ergeleiten, gegeben
HEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen
9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam
Informatik II - Übung 07
Informatik II - Übung 07 Katja Wolff katja.wolff@inf.ethz.ch Besprechung Übungsblatt 6 Informatik II Übung 07 12.04.2017 2 Übungsblatt 6 1.) Klassen, Schnittstellen, Typumwandlung 2.) Schnittstellen und
Übersicht. Einfache Suche. Hashing Skip-Lists Mengen Sortieren Order-Statistics. 2 Suchen und Sortieren
Übersicht Einfache Suche Hashing Skip-Lists Mengen Sortieren Order-Statistics (Folie 6, Seite 37 im Skript) 5 6 1 4 Als assoziatives Array geeignet Schlüssel aus geordneter Menge Linke Kinder kleiner,
Interface. So werden Interfaces gemacht
Design Ein Interface (=Schnittstelle / Definition) beschreibt, welche Funktionalität eine Implementation nach Aussen anzubieten hat. Die dahinter liegende Algorithmik wird aber der Implementation überlassen.
Jgst. 11/I 1.Klausur
Jgst. /I.Klausur..00 A. Bestimme den Scnittpunkt und den Scnittwinkel der beiden folgenden Geraden: g : x y = 5 : + y = 5x Zunäcst müssen die beiden Geraden auf Normalform gebract werden: x y = 5 y = x
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
Algorithmen und Datenstrukturen Musterlösung 5
Algorithmen und Datenstrukturen Musterlösung 5 Martin Avanzini Thomas Bauereiß Herbert Jordan René Thiemann
Einführung Elementare Datenstrukturen. Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst.
Einführung Elementare Datenstrukturen (Folie 28, Seite 15 im Skript) Der Konstruktor muß den Listenkopf head erzeugen. Der Vorgänger und Nachfolger von head ist head selbst. Einführung Elementare Datenstrukturen
Datenstruktur Baum und Rekursion Software Entwicklung 1
Datenstruktur Baum und Rekursion Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller 1 Datenstruktur Baum Bäume gehören zu den wichtigsten in der Informatik auftretenden Datenstrukturen.
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:
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
Der Hauptsatz der Differential und Integralrechnung
Der Hauptsatz der Differential und Integralrecnung Micael Karkulik, Stepan Scmeissl Präsentation für Logik als Arbeitssprace ê Präsentationstecnik 2 Inalt: 1.0 Zusammenfassung 2.0 Einleitung 3.0 Der Hauptsatz