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

Größe: px
Ab Seite anzeigen:

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

Transkript

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

2 4.1 Grundoperationen Aufgabenstellung: 3

3 4.1 Grundoperationen Aufgabenstellung: Verwalten einer Menge S von Objekten 3

4 4.1 Grundoperationen Aufgabenstellung: Verwalten einer Menge S von Objekten Ausführen von verschiedenen Operationen (s.u.) 3

5 4.1 Grundoperationen Aufgabenstellung: Verwalten einer Menge S von Objekten Ausführen von verschiedenen Operationen (s.u.) 3

6 4.1 Grundoperationen Aufgabenstellung: Verwalten einer Menge S von Objekten Ausführen von verschiedenen Operationen (s.u.) Im Folgenden: 3

7 4.1 Grundoperationen Aufgabenstellung: Verwalten einer Menge S von Objekten Ausführen von verschiedenen Operationen (s.u.) Im Folgenden: S Menge von Objekten 3

8 4.1 Grundoperationen Aufgabenstellung: Verwalten einer Menge S von Objekten Ausführen von verschiedenen Operationen (s.u.) Im Folgenden: S Menge von Objekten k Wert eines Elements ( Schlüssel ) 3

9 4.1 Grundoperationen Aufgabenstellung: Verwalten einer Menge S von Objekten Ausführen von verschiedenen Operationen (s.u.) Im Folgenden: S Menge von Objekten k Wert eines Elements ( Schlüssel ) x Zeiger auf Element 3

10 4.1 Grundoperationen Aufgabenstellung: Verwalten einer Menge S von Objekten Ausführen von verschiedenen Operationen (s.u.) Im Folgenden: S Menge von Objekten k Wert eines Elements ( Schlüssel ) x Zeiger auf Element NIL spezieller, leerer Zeiger 3

11 4.1 Grundoperationen 4

12 4.1 Grundoperationen SEARCH(S,k): Suche in S nach k 4

13 4.1 Grundoperationen SEARCH(S,k): Suche in S nach k 4

14 4.1 Grundoperationen SEARCH(S,k): Suche in S nach k Durchsuche die Menge S nach einem Element von Wert k. 4

15 4.1 Grundoperationen SEARCH(S,k): Suche in S nach k Durchsuche die Menge S nach einem Element von Wert k. 4

16 4.1 Grundoperationen SEARCH(S,k): Suche in S nach k Durchsuche die Menge S nach einem Element von Wert k. Ausgabe: Zeiger x, falls x existent 4

17 4.1 Grundoperationen SEARCH(S,k): Suche in S nach k Durchsuche die Menge S nach einem Element von Wert k. Ausgabe: Zeiger x, falls x existent NIL, falls kein Element Wert k hat. 4

18 4.1 Grundoperationen SEARCH(S,k): Suche in S nach k Durchsuche die Menge S nach einem Element von Wert k. Ausgabe: Zeiger x, falls x existent NIL, falls kein Element Wert k hat. 4

19 4.1 Grundoperationen 5

20 4.1 Grundoperationen INSERT(S,x): Füge x in S ein 5

21 4.1 Grundoperationen INSERT(S,x): Füge x in S ein 5

22 4.1 Grundoperationen INSERT(S,x): Füge x in S ein Erweitere S um das Element, das unter der Adresse x steht. 5

23 4.1 Grundoperationen INSERT(S,x): Füge x in S ein Erweitere S um das Element, das unter der Adresse x steht. 5

24 4.1 Grundoperationen 6

25 4.1 Grundoperationen DELETE(S,x): Entferne x aus S 6

26 4.1 Grundoperationen DELETE(S,x): Entferne x aus S 6

27 4.1 Grundoperationen DELETE(S,x): Entferne x aus S Lösche das unter der Adresse x stehende Element aus der Menge S. 6

28 4.1 Grundoperationen DELETE(S,x): Entferne x aus S Lösche das unter der Adresse x stehende Element aus der Menge S. 6

29 4.1 Grundoperationen 7

30 4.1 Grundoperationen MINIMUM(S): Suche das Minimum in S 7

31 4.1 Grundoperationen MINIMUM(S): Suche das Minimum in S 7

32 4.1 Grundoperationen MINIMUM(S): Suche das Minimum in S Finde in S ein Element von kleinstem Wert. 7

33 4.1 Grundoperationen MINIMUM(S): Suche das Minimum in S Finde in S ein Element von kleinstem Wert. (Annahme: Die Werte lassen sich vollständig vergleichen!) 7

34 4.1 Grundoperationen MINIMUM(S): Suche das Minimum in S Finde in S ein Element von kleinstem Wert. (Annahme: Die Werte lassen sich vollständig vergleichen!) 7

35 4.1 Grundoperationen MINIMUM(S): Suche das Minimum in S Finde in S ein Element von kleinstem Wert. (Annahme: Die Werte lassen sich vollständig vergleichen!) Ausgabe: Zeiger x auf solch ein Element 7

36 4.1 Grundoperationen MINIMUM(S): Suche das Minimum in S Finde in S ein Element von kleinstem Wert. (Annahme: Die Werte lassen sich vollständig vergleichen!) Ausgabe: Zeiger x auf solch ein Element 7

37 4.1 Grundoperationen 8

38 4.1 Grundoperationen MAXIMUM(S): Suche das Maximum in S 8

39 4.1 Grundoperationen MAXIMUM(S): Suche das Maximum in S 8

40 4.1 Grundoperationen MAXIMUM(S): Suche das Maximum in S Finde in S ein Element von größtem Wert. 8

41 4.1 Grundoperationen MAXIMUM(S): Suche das Maximum in S Finde in S ein Element von größtem Wert. (Annahme: Die Werte lassen sich vollständig vergleichen!) 8

42 4.1 Grundoperationen MAXIMUM(S): Suche das Maximum in S Finde in S ein Element von größtem Wert. (Annahme: Die Werte lassen sich vollständig vergleichen!) 8

43 4.1 Grundoperationen MAXIMUM(S): Suche das Maximum in S Finde in S ein Element von größtem Wert. (Annahme: Die Werte lassen sich vollständig vergleichen!) Ausgabe: Zeiger x auf solch ein Element 8

44 4.1 Grundoperationen MAXIMUM(S): Suche das Maximum in S Finde in S ein Element von größtem Wert. (Annahme: Die Werte lassen sich vollständig vergleichen!) Ausgabe: Zeiger x auf solch ein Element 8

45 4.1 Grundoperationen 9

46 4.1 Grundoperationen PREDECESSOR(S,x): Finde das nächstkleinere Element 9

47 4.1 Grundoperationen PREDECESSOR(S,x): Finde das nächstkleinere Element 9

48 4.1 Grundoperationen PREDECESSOR(S,x): Finde das nächstkleinere Element Für ein in x stehendes Element in S, bestimme ein Element von nächstkleinerem Wert in S. 9

49 4.1 Grundoperationen PREDECESSOR(S,x): Finde das nächstkleinere Element Für ein in x stehendes Element in S, bestimme ein Element von nächstkleinerem Wert in S. 9

50 4.1 Grundoperationen PREDECESSOR(S,x): Finde das nächstkleinere Element Für ein in x stehendes Element in S, bestimme ein Element von nächstkleinerem Wert in S. Ausgabe: Zeiger y auf Element 9

51 4.1 Grundoperationen PREDECESSOR(S,x): Finde das nächstkleinere Element Für ein in x stehendes Element in S, bestimme ein Element von nächstkleinerem Wert in S. Ausgabe: Zeiger y auf Element NIL, falls x Minimum von S angibt 9

52 4.1 Grundoperationen PREDECESSOR(S,x): Finde das nächstkleinere Element Für ein in x stehendes Element in S, bestimme ein Element von nächstkleinerem Wert in S. Ausgabe: Zeiger y auf Element NIL, falls x Minimum von S angibt 9

53 4.1 Grundoperationen 10

54 4.1 Grundoperationen SUCCESSOR(S,x): Finde das nächstgrößere Element 10

55 4.1 Grundoperationen SUCCESSOR(S,x): Finde das nächstgrößere Element 10

56 4.1 Grundoperationen SUCCESSOR(S,x): Finde das nächstgrößere Element Für ein in x stehendes Element in S, bestimme ein Element von nächstgrößerem Wert in S. 10

57 4.1 Grundoperationen SUCCESSOR(S,x): Finde das nächstgrößere Element Für ein in x stehendes Element in S, bestimme ein Element von nächstgrößerem Wert in S. 10

58 4.1 Grundoperationen SUCCESSOR(S,x): Finde das nächstgrößere Element Für ein in x stehendes Element in S, bestimme ein Element von nächstgrößerem Wert in S. Ausgabe: Zeiger y auf Element 10

59 4.1 Grundoperationen SUCCESSOR(S,x): Finde das nächstgrößere Element Für ein in x stehendes Element in S, bestimme ein Element von nächstgrößerem Wert in S. Ausgabe: Zeiger y auf Element NIL, falls x Maximum von S angibt 10

60 4.1 Grundoperationen SUCCESSOR(S,x): Finde das nächstgrößere Element Für ein in x stehendes Element in S, bestimme ein Element von nächstgrößerem Wert in S. Ausgabe: Zeiger y auf Element NIL, falls x Maximum von S angibt 10

61 4.1 Grundoperationen 11

62 4.1 Grundoperationen Wie nimmt man das vor? 11

63 4.1 Grundoperationen Wie nimmt man das vor? 11

64 4.1 Grundoperationen Wie nimmt man das vor? Wie lange dauert das, in Abhängigkeit von der Größe von S? 11

65 4.1 Grundoperationen Wie nimmt man das vor? Wie lange dauert das, in Abhängigkeit von der Größe von S? 11

66 4.1 Grundoperationen Wie nimmt man das vor? Wie lange dauert das, in Abhängigkeit von der Größe von S? Unsortierte Unterlagen: 11

67 4.1 Grundoperationen Wie nimmt man das vor? Wie lange dauert das, in Abhängigkeit von der Größe von S? Unsortierte Unterlagen: Immer alles durchgehen, also: 11 O(n)

68 4.1 Grundoperationen Wie nimmt man das vor? Wie lange dauert das, in Abhängigkeit von der Größe von S? Unsortierte Unterlagen: Immer alles durchgehen, also: 11 O(n)

69 4.1 Grundoperationen Wie nimmt man das vor? Wie lange dauert das, in Abhängigkeit von der Größe von S? Unsortierte Unterlagen: Immer alles durchgehen, also: O(n) Sortierte Unterlagen: Geht schneller! 11

70 4.1 Grundoperationen 12

71 4.1 Grundoperationen Langsam: 12

72 4.1 Grundoperationen Langsam: lineare Zeit O(n): 12

73 4.1 Grundoperationen Langsam: lineare Zeit O(n): Alle Objekte anschauen 12

74 4.1 Grundoperationen Langsam: lineare Zeit O(n): Alle Objekte anschauen Sehr schnell: 12

75 4.1 Grundoperationen Langsam: lineare Zeit O(n): Alle Objekte anschauen Sehr schnell: konstante Zeit O(1): 12

76 4.1 Grundoperationen Langsam: lineare Zeit O(n): Alle Objekte anschauen Sehr schnell: konstante Zeit O(1): Immer gleich schnell, egal wie groß S ist. 12

77 4.1 Grundoperationen Langsam: lineare Zeit O(n): Alle Objekte anschauen Sehr schnell: konstante Zeit O(1): Immer gleich schnell, egal wie groß S ist. Schnell: 12

78 4.1 Grundoperationen Langsam: lineare Zeit O(n): Alle Objekte anschauen Sehr schnell: konstante Zeit O(1): Immer gleich schnell, egal wie groß S ist. Schnell: O(log n): logarithmische Zeit 12

79 4.1 Grundoperationen Langsam: lineare Zeit O(n): Alle Objekte anschauen Sehr schnell: konstante Zeit O(1): Immer gleich schnell, egal wie groß S ist. Schnell: O(log n): logarithmische Zeit Wiederholtes Halbieren 12

80 4.2 Stapel und Warteschlange IN OUT 13

81 4.2 Stapel und Warteschlange IN OUT 13

82 4.2 Stapel und Warteschlange IN OUT Enqueue: 17, 3, 5 13

83 4.2 Stapel und Warteschlange IN OUT Enqueue: 17, 3, 5 13

84 4.2 Stapel und Warteschlange IN OUT Enqueue: 17, 3, 5 Dequeue: 13

85 4.2 Stapel und Warteschlange IN OUT Enqueue: 17, 3, 5 Dequeue: 13

86 Warteschlange auf Array umgesetzt 14

87 Warteschlange auf Array umgesetzt 14

88 Warteschlange auf Array umgesetzt 14

89 Warteschlange auf Array umgesetzt 14

90 Stack auf Array umgesetzt 15

91 Stack auf Array umgesetzt IN 15

92 Stack auf Array umgesetzt IN OUT 15

93 Stack auf Array umgesetzt IN OUT 15

94 Stack auf Array umgesetzt Push: 17, 3 IN OUT 15

95 Stack auf Array umgesetzt Push: 17, 3 IN OUT 15

96 Stack auf Array umgesetzt Push: 17, 3 Pop 15 IN OUT

97 Stack auf Array umgesetzt Push: 17, 3 Pop 15 IN OUT

98 Stack auf Array umgesetzt IN OUT 15

99 Stack auf Array umgesetzt IN OUT 15

100 Stack auf Array umgesetzt IN OUT 15

101 Stack auf Array umgesetzt IN OUT 15

102 4.3 Verkettete Listen 16

103 4.3 Verkettete Listen Idee: 16

104 4.3 Verkettete Listen Idee: 16

105 4.3 Verkettete Listen Idee: Ordne Objekte nicht explizit in aufeinanderfolgenden Speicherzellen an, sondern gib jeweils Vorgänger und Nachfolger an. 16

106 17

107 Struktur einer doppelt verketteten Liste 17

108 Struktur einer doppelt verketteten Liste 17

109 Struktur einer doppelt verketteten Liste 17

110 Struktur einer doppelt verketteten Liste 17

111 Struktur einer doppelt verketteten Liste Füge vorne das Element mit Schlüssel 25 ein. 17

112 Struktur einer doppelt verketteten Liste Füge vorne das Element mit Schlüssel 25 ein. 17

113 Struktur einer doppelt verketteten Liste Füge vorne das Element mit Schlüssel 25 ein. Finde ein Element mit Schlüssel 1 und lösche es. 17

114 Struktur einer doppelt verketteten Liste Füge vorne das Element mit Schlüssel 25 ein. Finde ein Element mit Schlüssel 1 und lösche es. 17

115 18

116 Einfügen in eine doppelt verkettete Liste 18

117 Einfügen in eine doppelt verkettete Liste 18

118 Einfügen in eine doppelt verkettete Liste 18

119 Einfügen in eine doppelt verkettete Liste Laufzeit: O(1) 18

120 19

121 Löschen aus einer doppelt verketteten Liste 19

122 Löschen aus einer doppelt verketteten Liste 19

123 Löschen aus einer doppelt verketteten Liste 19

124 Löschen aus einer doppelt verketteten Liste Laufzeit: O(n) 19

125 Löschen aus einer doppelt verketteten Liste Laufzeit: O(n) 19

126 Löschen aus einer doppelt verketteten Liste Laufzeit: O(n) Laufzeit: O(1) 19

127 20

128 Alternative: Zyklische Struktur mit Wächter nil[l] 20

129 Alternative: Zyklische Struktur mit Wächter nil[l] 20

130 Alternative: Zyklische Struktur mit Wächter nil[l] 20

131 21

132 Alternative: Zyklische Struktur mit Wächter nil[l] 21

133 Alternative: Zyklische Struktur mit Wächter nil[l] 21

134 Alternative: Zyklische Struktur mit Wächter nil[l] 21

135 Alternative: Zyklische Struktur mit Wächter nil[l] 21

136 22

137 Speicherung kann irgendwo erfolgen! 22

138 Speicherung kann irgendwo erfolgen! 22

139 Speicherung kann irgendwo erfolgen! 22

140 4.4 Binäre Suche 23

141 4.4 Binäre Suche Aufgabenstellung: 23

142 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! 23

143 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! 23

144 Algorithmus 4.1 INPUT: Sortierter Array mit Einträgen S[I], Suchwert WERT, linke Randposition LINKS, rechte Randposition RECHTS, OUTPUT: Position von WERT zwischen Arraypositionen LINKS und RECHTS, falls existent BINÄRESUCHE(S,WERT,LINKS,RECHTS) 1. WHILE (LINKS RECHTS) DO { 1.1. MITTE:= 1.2. IF (S[MITTE]=WERT) THEN RETURN MITTE 1.3. ELSEIF (S[MITTE]>WERT) THEN RECHTS:=MITTE ELSEIF LINKS:=MITTE+1 } 2. RETURN WERT nicht gefunden! 24

145 Algorithmus 4.1 INPUT: Sortierter Array mit Einträgen S[I], Suchwert WERT, linke Randposition LINKS, rechte Randposition RECHTS, OUTPUT: Position von WERT zwischen Arraypositionen LINKS und RECHTS, falls existent BINÄRESUCHE(S,WERT,LINKS,RECHTS) 1. WHILE (LINKS RECHTS) DO { 1.1. MITTE:= 1.2. IF (S[MITTE]=WERT) THEN RETURN MITTE 1.3. ELSEIF (S[MITTE]>WERT) THEN RECHTS:=MITTE ELSEIF LINKS:=MITTE+1 } 2. RETURN WERT nicht gefunden! 24

146 Algorithmus 4.1 INPUT: Sortierter Array mit Einträgen S[I], Suchwert WERT, linke Randposition LINKS, rechte Randposition RECHTS, OUTPUT: Position von WERT zwischen Arraypositionen LINKS und RECHTS, falls existent BINÄRESUCHE(S,WERT,LINKS,RECHTS) 1. WHILE (LINKS RECHTS) DO { 1.1. MITTE:= 1.2. IF (S[MITTE]=WERT) THEN RETURN MITTE 1.3. ELSEIF (S[MITTE]>WERT) THEN RECHTS:=MITTE ELSEIF LINKS:=MITTE+1 } 2. RETURN WERT nicht gefunden! 24

147 Algorithmus 4.1 INPUT: Sortierter Array mit Einträgen S[I], Suchwert WERT, linke Randposition LINKS, rechte Randposition RECHTS, OUTPUT: Position von WERT zwischen Arraypositionen LINKS und RECHTS, falls existent BINÄRESUCHE(S,WERT,LINKS,RECHTS) 1. WHILE (LINKS RECHTS) DO { 1.1. MITTE:= 1.2. IF (S[MITTE]=WERT) THEN RETURN MITTE 1.3. ELSEIF (S[MITTE]>WERT) THEN RECHTS:=MITTE ELSEIF LINKS:=MITTE+1 } 2. RETURN WERT nicht gefunden! 24

148 Algorithmus 4.1 INPUT: Sortierter Array mit Einträgen S[I], Suchwert WERT, linke Randposition LINKS, rechte Randposition RECHTS, OUTPUT: Position von WERT zwischen Arraypositionen LINKS und RECHTS, falls existent BINÄRESUCHE(S,WERT,LINKS,RECHTS) 1. WHILE (LINKS RECHTS) DO { 1.1. MITTE:= 1.2. IF (S[MITTE]=WERT) THEN RETURN MITTE 1.3. ELSEIF (S[MITTE]>WERT) THEN RECHTS:=MITTE ELSEIF LINKS:=MITTE+1 } 2. RETURN WERT nicht gefunden! 24

149 Algorithmus 4.1 INPUT: Sortierter Array mit Einträgen S[I], Suchwert WERT, linke Randposition LINKS, rechte Randposition RECHTS, OUTPUT: Position von WERT zwischen Arraypositionen LINKS und RECHTS, falls existent BINÄRESUCHE(S,WERT,LINKS,RECHTS) 1. WHILE (LINKS RECHTS) DO { 1.1. MITTE:= 1.2. IF (S[MITTE]=WERT) THEN RETURN MITTE 1.3. ELSEIF (S[MITTE]>WERT) THEN RECHTS:=MITTE ELSEIF LINKS:=MITTE+1 } 2. RETURN WERT nicht gefunden! 24

150 Algorithmus 4.1 INPUT: Sortierter Array mit Einträgen S[I], Suchwert WERT, linke Randposition LINKS, rechte Randposition RECHTS, OUTPUT: Position von WERT zwischen Arraypositionen LINKS und RECHTS, falls existent BINÄRESUCHE(S,WERT,LINKS,RECHTS) 1. WHILE (LINKS RECHTS) DO { 1.1. MITTE:= 1.2. IF (S[MITTE]=WERT) THEN RETURN MITTE 1.3. ELSEIF (S[MITTE]>WERT) THEN RECHTS:=MITTE ELSEIF LINKS:=MITTE+1 } 2. RETURN WERT nicht gefunden! 24

151 Algorithmus 4.1 INPUT: Sortierter Array mit Einträgen S[I], Suchwert WERT, linke Randposition LINKS, rechte Randposition RECHTS, OUTPUT: Position von WERT zwischen Arraypositionen LINKS und RECHTS, falls existent BINÄRESUCHE(S,WERT,LINKS,RECHTS) 1. WHILE (LINKS RECHTS) DO { 1.1. MITTE:= 1.2. IF (S[MITTE]=WERT) THEN RETURN MITTE 1.3. ELSEIF (S[MITTE]>WERT) THEN RECHTS:=MITTE ELSEIF LINKS:=MITTE+1 } 2. RETURN WERT nicht gefunden! 24

152 Algorithmus 4.1 INPUT: Sortierter Array mit Einträgen S[I], Suchwert WERT, linke Randposition LINKS, rechte Randposition RECHTS, OUTPUT: Position von WERT zwischen Arraypositionen LINKS und RECHTS, falls existent BINÄRESUCHE(S,WERT,LINKS,RECHTS) 1. WHILE (LINKS RECHTS) DO { 1.1. MITTE:= 1.2. IF (S[MITTE]=WERT) THEN RETURN MITTE 1.3. ELSEIF (S[MITTE]>WERT) THEN RECHTS:=MITTE ELSEIF LINKS:=MITTE+1 } 2. RETURN WERT nicht gefunden! 24

153 Algorithmus 4.1 INPUT: Sortierter Array mit Einträgen S[I], Suchwert WERT, linke Randposition LINKS, rechte Randposition RECHTS, OUTPUT: Position von WERT zwischen Arraypositionen LINKS und RECHTS, falls existent BINÄRESUCHE(S,WERT,LINKS,RECHTS) 1. WHILE (LINKS RECHTS) DO { 1.1. MITTE:= 1.2. IF (S[MITTE]=WERT) THEN RETURN MITTE 1.3. ELSEIF (S[MITTE]>WERT) THEN RECHTS:=MITTE ELSEIF LINKS:=MITTE+1 } 2. RETURN WERT nicht gefunden! 24

154 Algorithmus 4.1 INPUT: Sortierter Array mit Einträgen S[I], Suchwert WERT, linke Randposition LINKS, rechte Randposition RECHTS, OUTPUT: Position von WERT zwischen Arraypositionen LINKS und RECHTS, falls existent BINÄRESUCHE(S,WERT,LINKS,RECHTS) 1. WHILE (LINKS RECHTS) DO { 1.1. MITTE:= 1.2. IF (S[MITTE]=WERT) THEN RETURN MITTE 1.3. ELSEIF (S[MITTE]>WERT) THEN RECHTS:=MITTE ELSEIF LINKS:=MITTE+1 } 2. RETURN WERT nicht gefunden! 24

155 25

156 25

157 4.4 Binäre Suche 26

158 4.4 Binäre Suche Satz

159 4.4 Binäre Suche Satz 4.2 Die binäre Suche terminiert in O(log(RECHTS-LINKS)) Schritten 26

160 4.4 Binäre Suche Satz 4.2 Die binäre Suche terminiert in O(log(RECHTS-LINKS)) Schritten (für RECHTS>LINKS). 26

161 4.4 Binäre Suche Satz 4.2 Die binäre Suche terminiert in O(log(RECHTS-LINKS)) Schritten (für RECHTS>LINKS). Beweis: Selbst! 26

162 4.4 Binäre Suche Satz 4.2 Die binäre Suche terminiert in O(log(RECHTS-LINKS)) Schritten (für RECHTS>LINKS). Beweis: Selbst! 26

163 4.5 Binäre Suchbäume 27

164 4.5 Binäre Suchbäume 27

165 4.5 Binäre Suchbäume 27

166 4.5 Binäre Suchbäume Ideen: 27

167 4.5 Binäre Suchbäume Ideen: Strukturiere Daten wie im möglichen Ablauf einer binären Suche! 27

168 4.5 Binäre Suchbäume Ideen: Strukturiere Daten wie im möglichen Ablauf einer binären Suche! Erziele logarithmische Zeiten! 27

169 28

170 Struktur einer doppelt verketteten Liste 28

171 Struktur einer doppelt verketteten Liste 28

172 Struktur einer doppelt verketteten Liste 28

173 Struktur einer doppelt verketteten Liste 28

174 Binärer Suchbaum 29

175 Binärer Suchbaum Vater 29

176 Binärer Suchbaum Vater Linkes Kind 29

177 Binärer Suchbaum Vater Linkes Kind 29 Rechtes Kind

178 Binärer Suchbaum 29

179 Binärer Suchbaum 29

180 Binärer Suchbaum Außerdem wichtig: Struktur der Schlüsselwerte! 29

181 Ordnungsstruktur 30

182 Ordnungsstruktur 30

183 Ordnungsstruktur Linker Teilbaum: Kleinere (bzw. nicht größere) Zahlen Rechter Teilbaum: Größere Zahlen 30

184 Ordnungsstruktur Linker Teilbaum: Kleinere (bzw. nicht größere) Zahlen Rechter Teilbaum: Größere Zahlen 30

185 Mehr demnächst! 31

186 Mehr demnächst! 31

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

Kapitel 4: Dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4: Dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.4 Binäre Suche Aufgabenstellung: Rate eine Zahl zwischen 100 und 114! Algorithmus 4.1 INPUT: OUTPUT:

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

ContainerDatenstrukturen. Große Übung 4

ContainerDatenstrukturen. Große Übung 4 ContainerDatenstrukturen Große Übung 4 Aufgabenstellung Verwalte Kollektion S von n Objekten Grundaufgaben: Iterieren/Auflistung Suche nach Objekt x mit Wert/Schlüssel k Füge ein Objekt x hinzu Entferne

Mehr

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing

Algorithmen I. Tutorium 1-3. Sitzung. Dennis Felsing Algorithmen I Tutorium 1-3. Sitzung Dennis Felsing dennis.felsing@student.kit.edu www.stud.uni-karlsruhe.de/~ubcqr/algo 2011-05-02 Überblick 1 Sortieren und Suchen 2 Mastertheorem 3 Datenstrukturen 4 Kreativaufgabe

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

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit

Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält

Mehr

8 Elementare Datenstrukturen

8 Elementare Datenstrukturen Algorithmen und Datenstrukturen 186 8 Elementare Datenstrukturen In diesem und dem folgenden Kapitel werden grundlegende Techniken der Darstellung und Manipulation dynamischer Mengen auf Computern vorgestellt.

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

Wintersemester 2004/ Dezember 2004

Wintersemester 2004/ Dezember 2004 Lehrstuhl für Praktische Informatik III Norman May B6, 29, Raum C0.05 68131 Mannheim Telefon: (0621) 181 2517 Email: norman@pi3.informatik.uni-mannheim.de Matthias Brantner B6, 29, Raum C0.05 68131 Mannheim

Mehr

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

Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Sortierte Listen 2. Stacks & Queues 3. Teile und Herrsche Nächste Woche: Vorrechnen (first-come-first-served)

Mehr

13. Binäre Suchbäume

13. Binäre Suchbäume 1. Binäre Suchbäume Binäre Suchbäume realiesieren Wörterbücher. Sie unterstützen die Operationen 1. Einfügen (Insert) 2. Entfernen (Delete). Suchen (Search) 4. Maximum/Minimum-Suche 5. Vorgänger (Predecessor),

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen 1 Algorithmen und Datenstrukturen Wintersemester 2016/17 13. Vorlesung Binäre Suchbäume Prof. Dr. Alexander Wolff Lehrstuhl für Informatik I 2 Dynamische Menge verwaltet Elemente einer sich ändernden Menge

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

Ü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

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO 708.031 Bäume robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische Grundprinzipien 3. Sortierverfahren 4. Halden

Mehr

Informatik II, SS 2016

Informatik II, SS 2016 Informatik II - SS 2016 (Algorithmen & Datenstrukturen) Vorlesung 6 (6.5.2016) Abstrakte Datentypen, Einfache Datenstrukturen Algorithmen und Komplexität Abstrakte Datentypen : Beispiele Dictionary: (auch:

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 7 (21.5.2014) Binäre Suche, Hashtabellen I Algorithmen und Komplexität Abstrakte Datentypen : Dictionary Dictionary: (auch: Maps, assoziative

Mehr

Informatik II, SS 2016

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:

Mehr

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken.

Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Abstrakte Datentypen und Datenstrukturen/ Einfache Beispiele Abstrakter Datentyp (ADT): Besteht aus einer Menge von Objekten, sowie Operationen, die auf diesen Objekten wirken. Datenstruktur (DS): Realisierung

Mehr

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik

Humboldt-Universität zu Berlin Berlin, den Institut für Informatik Humboldt-Universität zu Berlin Berlin, den 15.06.2015 Institut für Informatik Prof. Dr. Ulf Leser Übungen zur Vorlesung M. Bux, B. Grußien, J. Sürmeli, S. Wandelt Algorithmen und Datenstrukturen Übungsblatt

Mehr

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt

Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Algorithmen und Datenstrukturen 265 10 Binäre Suchbäume Suchbäume Datenstruktur, die viele Operationen dynamischer Mengen unterstützt Kann als Wörterbuch, aber auch zu mehr eingesetzt werden (Prioritätsschlange)

Mehr

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2013/14. Prof. Dr. Sándor Fekete

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2013/14. Prof. Dr. Sándor Fekete Kapitel 4.8-4.11: Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2013/14 Prof. Dr. Sándor Fekete 1 4.6 AVL-Bäume 2 4.8 Rot-Schwarz-Bäume Rudolf Bayer Idee: Verwende Farben, um den

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Elementare Datenstrukturen für dynamische Mengen Stapel & Warteschlangen Verkettete Listen Bäume Anwendungsbeispiel:

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Universität Innsbruck Institut für Informatik Zweite Prüfung 16. Oktober 2008 Algorithmen und Datenstrukturen Name: Matrikelnr: Die Prüfung besteht aus 8 Aufgaben. Die verfügbaren Punkte für jede Aufgabe

Mehr

Kapitel 9 Suchalgorithmen

Kapitel 9 Suchalgorithmen Kapitel 9 Suchalgorithmen Suchverfahren: Verfahren, das in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Vielfältige Anwendungsbereiche für Suchverfahren: u.a. Suchen in

Mehr

ALP II Dynamische Datenmengen Datenabstraktion

ALP II Dynamische Datenmengen Datenabstraktion ALP II Dynamische Datenmengen Datenabstraktion O1 O2 O3 O4 SS 2012 Prof Dr Margarita Esponda M Esponda-Argüero 1 Dynamische Datenmengen Dynamische Datenmengen können durch verschiedene Datenstrukturen

Mehr

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

Wiederholung. Datenstrukturen und. Bäume. Wiederholung. Suchen in linearen Feldern VO Wiederholung Datenstrukturen und Algorithmen VO 708.031 Suchen in linearen Feldern Ohne Vorsortierung: Sequentielle Suche Speicherung nach Zugriffswahrscheinlichkeit Selbstanordnende Felder Mit Vorsortierung:

Mehr

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5

Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 Robert Elsässer Paderborn, den 15. Mai 2008 u.v.a. Beispiellösung zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 5 AUFGABE 1 (6 Punkte): Nehmen wir an, Anfang bezeichne in einer normalen

Mehr

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2)

ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) ALP II Dynamische Datenmengen Datenabstraktion (Teil 2) O1 O2 O3 O4 SS 2012 Prof. Dr. Margarita Esponda 49 Einfach verkettete Listen O1 O2 O3 50 Einführung Einfach verkettete Listen sind die einfachsten

Mehr

Doppelt verkettete Listen (1)

Doppelt verkettete Listen (1) Doppelt verkettete Listen (1) Verkettete Listen bestehen aus einer Menge linear angeordneter Objekte. Anordnung realisiert durch Verweise. Unterstützen Operationen Insert, Delete, Search, usw. (nicht unbedingt

Mehr

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

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete Kapitel 4.8-4.11: Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen WS 2012/13 Prof. Dr. Sándor Fekete 4.6 AVL-Bäume 4.8 Rot-Schwarz-Bäume Idee: Verwende Farben, um den Baum vertikal zu

Mehr

Algorithmen und Datenstrukturen Suchbaum

Algorithmen und Datenstrukturen Suchbaum Algorithmen und Datenstrukturen Suchbaum Matthias Teschner Graphische Datenverarbeitung Institut für Informatik Universität Freiburg SS 12 Motivation Datenstruktur zur Repräsentation dynamischer Mengen

Mehr

12. Dynamische Datenstrukturen

12. Dynamische Datenstrukturen Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Implementationsvarianten der verketteten Liste 0 04 Motivation: Stapel ( push, pop, top, empty

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

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

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2017 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda: Kürzeste Wege, Heaps, Hashing Heute: Kürzeste Wege: Dijkstra Heaps: Binäre Min-Heaps Hashing:

Mehr

11.1 Grundlagen - Denitionen

11.1 Grundlagen - Denitionen 11 Binärbäume 11.1 Grundlagen - Denitionen Denition: Ein Baum ist eine Menge, die durch eine sog. Nachfolgerrelation strukturiert ist. In einem Baum gilt: (I) (II) 1 Knoten w ohne VATER(w), das ist die

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

Klausur Algorithmen und Datenstrukturen

Klausur Algorithmen und Datenstrukturen Technische Universität Braunschweig Sommersemester 2013 IBR - Abteilung Algorithmik Prof. Dr. Sándor Fekete Dr. Christiane Schmidt Stephan Friedrichs Klausur Algorithmen und Datenstrukturen 22.08.2013

Mehr

Fibonacci-Heaps und deren Anwendung

Fibonacci-Heaps und deren Anwendung Fibonacci-Heaps und deren Anwendung Alexander Schiffel und Stefan Hurtz 24. Juli 2005 Inhaltsverzeichnis 1 Einleitung und Motivation 2 2 Die Datenstruktur 2 3 Amortisierte Laufzeitanalyse 3 4 Grundoperationen

Mehr

Algorithmen und Datenstrukturen Heapsort

Algorithmen und Datenstrukturen Heapsort Algorithmen und Datenstrukturen 2 5 Heapsort In diesem Kapitel wird Heapsort, ein weiterer Sortieralgorithmus, vorgestellt. Dieser besitzt wie MERGE-SORT eine Laufzeit von O(n log n), sortiert jedoch das

Mehr

Informatik I 2. Kapitel. Elementare Datenstrukturen. Datenstrukturen. Datenstrukturen. Rainer Schrader. 28. Mai 2008

Informatik I 2. Kapitel. Elementare Datenstrukturen. Datenstrukturen. Datenstrukturen. Rainer Schrader. 28. Mai 2008 Informatik I. Kapitel Rainer Schrader Elementare Zentrum für Angewandte Informatik Köln 8. Mai 008 / / bisher haben wir nur Arrays verwendet, Gliederung Einführung abstrakte Datentypen Listen Stacks und

Mehr

NAME, VORNAME: Studiennummer: Matrikel:

NAME, VORNAME: Studiennummer: Matrikel: TU Ilmenau, Fakultat IA Institut für Theoretische Informatik FG Komplexitätstheorie und Effiziente Algorithmen Prof. Dr. (USA) M. Dietzfelbinger Klausur Algorithmen und Datenstrukturen SS08, Ing.-Inf.

Mehr

Mergeable Heaps. C. Komusiewicz 7.1 Fibonacci-Heaps: Überblick 117

Mergeable Heaps. C. Komusiewicz 7.1 Fibonacci-Heaps: Überblick 117 C. Komusiewicz 7.1 Fibonacci-Heaps: Überblick 117 Mergeable Heaps Erweiterung von Standardheaps, die die folgenden fünf Operationen unterstützen. Make-Heappq liefert neuen, leeren Heap. InsertpH, xq fügt

Mehr

Übung Algorithmen I

Übung Algorithmen I Übung Algorithmen I 10.5.17 Sascha Witt sascha.witt@kit.edu (Mit Folien von Lukas Barth, Julian Arz, Timo Bingmann, Sebastian Schlag und Christoph Striecks) Roadmap Listen Skip List Hotlist Amortisierte

Mehr

13. Dynamische 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

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

6. Verkettete Strukturen: Listen

6. Verkettete Strukturen: Listen 6. Verkettete Strukturen: Listen 5 K. Bothe, Inst. f ür Inf., HU Berlin, PI, WS 004/05, III.6 Verkettete Strukturen: Listen 53 Verkettete Listen : Aufgabe Vergleich: Arrays - verkettete Listen Listenarten

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

Datenstrukturen und Algorithmen SS07

Datenstrukturen und Algorithmen SS07 Datenstrukturen und Algorithmen SS0 Datum:.6.200 Michael Belfrage mbe@student.ethz.ch belfrage.net/eth Programm von Heute Minimaler Spannbaum (MST) Challenge der Woche Fibonacci Heap Minimaler Spannbaum

Mehr

Suchen in linearen Feldern. Datenstrukturen & Algorithmen. Laufzeitverhalten der Suchverfahren. Anzahl der Vergleiche für 10 9 Elemente

Suchen in linearen Feldern. Datenstrukturen & Algorithmen. Laufzeitverhalten der Suchverfahren. Anzahl der Vergleiche für 10 9 Elemente Suchen in linearen Feldern Datenstruturen & Algorithmen VO 708.031 11. Vorlesung, am 11.Dez. 2008 Ohne Vorsortierung Sequentielle Suche Speicherung nach Zugriffswahrscheinlicheiten Selbstanordnende Felder

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

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

Datenstrukturen und Algorithmen. 7. Suchen in linearen Feldern

Datenstrukturen und Algorithmen. 7. Suchen in linearen Feldern Datenstrukturen und Algorithmen 7. Suchen in linearen Feldern VO 708.031 Suchen in linearen Feldern robert.legenstein@igi.tugraz.at 1 Inhalt der Vorlesung 1. Motivation, Einführung, Grundlagen 2. Algorithmische

Mehr

Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen

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

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Grundlagen: Algorithmen und Datenstrukturen Prof. Dr. Hanjo Täubig Lehrstuhl für Effiziente Algorithmen (Prof. Dr. Ernst W. Mayr) Institut für Informatik Technische Universität München Sommersemester 2010

Mehr

Übersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen

Übersicht. Rot-schwarz Bäume. Rot-schwarz Bäume. Beispiel. Eigenschaften. Datenstrukturen & Algorithmen. Rot-schwarz Bäume Eigenschaften Einfügen Datenstrukturen & Algorithmen Übersicht Rot-schwarz Bäume Eigenschaften Einfügen Matthias Zwicker Universität Bern Frühling 2009 2 Rot-schwarz Bäume Binäre Suchbäume sind nur effizient wenn Höhe des Baumes

Mehr

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

Wiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter

Mehr

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr

3. Binäre Suchbäume. 3.1 Natürliche binäre Suchbäume. EADS 3.1 Natürliche binäre Suchbäume 78/598 ľernst W. Mayr 3. Binäre Suchbäume 3.1 Natürliche binäre Suchbäume Definition 18 Ein natürlicher binärer Suchbaum über einem durch total geordneten Universum U ist ein als interner Suchbaum organisierter Binärbaum (also:

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

Algorithmen und Datenstrukturen I Grundlagen

Algorithmen und Datenstrukturen I Grundlagen Algorithmen und Datenstrukturen I Grundlagen Prof. Dr. Oliver Braun Letzte Änderung: 01.11.2017 14:15 Algorithmen und Datenstrukturen I, Grundlagen 1/24 Algorithmus es gibt keine präzise Definition Handlungsvorschrift

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

ADS: Algorithmen und Datenstrukturen

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

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 11 (4.6.2014) Binäre Suchbäume II Algorithmen und Komplexität Binäre Suchbäume Binäre Suchbäume müssen nicht immer so schön symmetrisch sein

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

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

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen VO 708.031 Um was geht es? Datenstrukturen Algorithmen Algorithmus Versuch einer Erklärung: Ein Algorithmus nimmt bestimmte Daten als Input und transformiert diese nach festen

Mehr

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften

8. Sortieren II. 8.1 Heapsort. Heapsort. [Max-]Heap 6. Heapsort, Quicksort, Mergesort. Binärer Baum mit folgenden Eigenschaften Heapsort, Quicksort, Mergesort 8. Sortieren II 8.1 Heapsort [Ottman/Widmayer, Kap. 2.3, Cormen et al, Kap. 6] 9 210 Heapsort [Max-]Heap 6 Inspiration von Selectsort: Schnelles Einfügen Binärer Baum mit

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Heaps Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 469 Prioritätswarteschlange Problem Häufig ist das Prinzip einer einfachen Warteschlangen-Datenstruktur

Mehr

Suchbäume balancieren

Suchbäume balancieren Suchbäume balancieren Perfekte Balance: schwer aufrechtzuerhalten Flexible Höhe O(log n): balancierte binäre Suchbäume. Nicht hier (Variantenzoo). Flexibler Knotengrad: (a,b)-bäume. Grad zwischen a und

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

Vorlesung Datenstrukturen

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

Mehr

Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem &

Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem & Algorithmen und Datenstrukturen Kapitel 7 Dynamische Mengen, das Suchproblem & Frank Heitmann heitmann@informatik.uni-hamburg.de 25. November 2015 Frank Heitmann heitmann@informatik.uni-hamburg.de 1/122

Mehr

Algorithmen I. Sascha Witt Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799

Algorithmen I. Sascha Witt Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799 Algorithmen I Sascha Witt 10.05.2017 Institut für Theoretische Informatik Web: https://crypto.iti.kit.edu/index.php?id=799 (Folien von Peter Sanders) KIT Institut für Theoretische Informatik 1 Erinnerung

Mehr

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle

Das Suchproblem. Gegeben Menge von Datensätzen. Beispiele Telefonverzeichnis, Wörterbuch, Symboltabelle 122 4. Suchen Lineare Suche, Binäre Suche, Interpolationssuche, Untere Schranken [Ottman/Widmayer, Kap. 3.2, Cormen et al, Kap. 2: Problems 2.1-3,2.2-3,2.3-5] 123 Das Suchproblem Gegeben Menge von Datensätzen.

Mehr

Kap. 4.7 Skiplisten. 14./15. VO DAP2 SS /16. Juni 2009

Kap. 4.7 Skiplisten. 14./15. VO DAP2 SS /16. Juni 2009 Kap. 4.7 Skiplisten Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 14./15. VO DAP2 SS 2008 9./16. Juni 2009 1 2. Übungstest Termin: Di 16. Juni 2009 im AudiMax,

Mehr

Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch

Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch Was bisher geschah ADT Menge mit Operationen: Suche nach einem Element Einfügen eines Elementes Löschen eines Elementes Realisierung durch verschiedene Datenstrukturen: lineare Datenstrukturen: Array,

Mehr

Einfache Datenstrukturen

Einfache Datenstrukturen Kapitel 2 Einfache Datenstrukturen Bis vor einigen Jahren hat es für das Telefonieren ausgereicht, neben dem Telefon ein Telefonbuch zur Hand zu haben. Das im wesentlichen auftretende Problem, daß man

Mehr

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

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/3, Folie 1 2010 Prof. Steffen Lange - HDa/FbI

Mehr

Sortierte Folgen 250

Sortierte Folgen 250 Sortierte Folgen 250 Sortierte Folgen: he 1,...,e n i mit e 1 apple applee n kennzeichnende Funktion: M.locate(k):= addressof min{e 2 M : e k} Navigations Datenstruktur 2 3 5 7 11 13 17 19 00 Annahme:

Mehr

Rotation. y T 3. Abbildung 3.10: Rotation nach rechts (analog links) Doppelrotation y

Rotation. y T 3. Abbildung 3.10: Rotation nach rechts (analog links) Doppelrotation y Die AVL-Eigenschaft soll bei Einfügungen und Streichungen erhalten bleiben. Dafür gibt es zwei mögliche Operationen: -1-2 Rotation Abbildung 3.1: Rotation nach rechts (analog links) -2 +1 z ±1 T 4 Doppelrotation

Mehr

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

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

Mehr

Programmiertechnik II

Programmiertechnik II Sortieren: Einfache Algorithmen Sortieren Abstrakte Operation geg: Menge von items (Elemente) jedes Element besitzt Sortierschlüssel Schlüssel unterliegen einer Ordnung eventuell sind doppelte Schlüssel

Mehr

Kap. 4.2: Binäre Suchbäume

Kap. 4.2: Binäre Suchbäume Kap. 4.2: Binäre Suchbäume Professor Dr. Lehrstuhl für Algorithm Engineering, LS11 Fakultät für Informatik, TU Dortmund 11. VO DAP2 SS 2009 26. Mai 2009 1 Zusätzliche Lernraumbetreuung Morteza Monemizadeh:

Mehr

Übung Datenstrukturen. Bäume

Übung Datenstrukturen. Bäume Übung Datenstrukturen Bäume Übung Binärbaum 7 2 10 1 3 5 9 34 8 7 11 13 17 7 25 19 3 Aufgabe 1 Geben Sie die Reihenfolge der besuchten Knoten nach Prä-, In-, Post- und Levelorder an! Übung Binärbaum Aufgabe

Mehr

Datenstrukturen und Algorithmen

Datenstrukturen und Algorithmen Datenstrukturen und Algorithmen VO INF.02031UF (2-4)-Bäume robert.legenstein@igi.tugraz.at 1 7. Bäume Bäume als Datenstruktur Binärbäume Balancierte Bäume (2-4)-Bäume Anwendung: Mischbare Warteschlangen

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

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 13 (18.6.2014) Binäre Suchbäume IV (Rot Schwarz Bäume) Algorithmen und Komplexität Rot Schwarz Bäume Ziel: Binäre Suchbäume, welche immer

Mehr

Kapitel Andere dynamische Datenstrukturen

Kapitel Andere dynamische Datenstrukturen Institute of Operating Systems and Computer Networks Algorithms Group Kapitel 4.8-4.11 Andere dynamische Datenstrukturen Algorithmen und Datenstrukturen Wintersemester 2017/2018 Vorlesung#13, 12.12.2017

Mehr

Übung Algorithmen und Datenstrukturen

Übung Algorithmen und Datenstrukturen Übung Algorithmen und Datenstrukturen Sommersemester 2016 Patrick Schäfer, Humboldt-Universität zu Berlin Agenda 1. Vorstellen des vierten Übungsblatts 2. Vorbereitende Aufgaben für das vierte Übungsblatt

Mehr

Teil VII. Hashverfahren

Teil VII. Hashverfahren Teil VII Hashverfahren Überblick 1 Hashverfahren: Prinzip 2 Hashfunktionen 3 Kollisionsstrategien 4 Aufwand 5 Hashen in Java Prof. G. Stumme Algorithmen & Datenstrukturen Sommersemester 2009 7 1 Hashverfahren:

Mehr

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v)

Der linke Teilbaum von v enthält nur Schlüssel < key(v) und der rechte Teilbaum enthält nur Schlüssel > key(v) Ein Baum T mit Knotengraden 2, dessen Knoten Schlüssel aus einer total geordneten Menge speichern, ist ein binärer Suchbaum (BST), wenn für jeden inneren Knoten v von T die Suchbaumeigenschaft gilt: Der

Mehr

Wiederholung: Zusammenfassung Felder. Algorithmen und Datenstrukturen (für ET/IT) Definition Abstrakter Datentyp. Programm heute

Wiederholung: Zusammenfassung Felder. Algorithmen und Datenstrukturen (für ET/IT) Definition Abstrakter Datentyp. Programm heute Wiederholung: Zusammenfassung Felder Algorithmen und Datenstrukturen (für ET/IT) Wintersemester / Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Ein Feld A kann repräsentiert

Mehr

Informatik II, SS 2014

Informatik II, SS 2014 Informatik II SS 2014 (Algorithmen & Datenstrukturen) Vorlesung 9 (28.5.2014) Hashtabellen III Algorithmen und Komplexität Offene Adressierung : Zusammenfassung Offene Adressierung: Alle Schlüssel/Werte

Mehr

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

Suchbäume. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung Suchbäume Annabelle Klarl Zentralübung zur Vorlesung Einführung in die Informatik: http://www.pst.ifi.lmu.de/lehre/wise-13-14/infoeinf WS13/14 Action required now 1. Smartphone: installiere die App "socrative

Mehr

Datenstrukturen und Algorithmen 2. Klausur SS 2001

Datenstrukturen und Algorithmen 2. Klausur SS 2001 UNIVERSITÄT PADERBORN FACHBEREICH 7 (MATHEMATIK INFORMATIK) Datenstrukturen und Algorithmen 2. Klausur SS 200 Lösungsansätze Dienstag, 8. September 200 Name, Vorname:...................................................

Mehr

Dies ist gerade der konstruktive Schritt beim Aufbau von Binomialbäumen.

Dies ist gerade der konstruktive Schritt beim Aufbau von Binomialbäumen. Linken von Bäumen: Zwei Bäume desselben Wurzel-Rangs werden unter Einhaltung der Heap-Bedingung verbunden. Sind k 1 und k 2 die Wurzeln der zwei zu linkenden Bäume, so wird ein neuer Baum aufgebaut, dessen

Mehr

Wie beim letzten Mal - bitte besucht: http://pingo.upb.de/549170 Ihr seid gleich wieder gefragt... Übung Algorithmen I 4.5.16 Lukas Barth lukas.barth@kit.edu (Mit Folien von Julian Arz, Timo Bingmann,

Mehr

Suchen und Sortieren

Suchen und Sortieren Ideen und Konzepte der Informatik Suchen und Sortieren Ordnung ist das halbe Leben Antonios Antoniadis (Basierend auf Folien von Kurt Mehlhorn und Konstantinos Panagiotou) 6. November 2017 6. November

Mehr