Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Eleonore Eden Geändert vor über 11 Jahren
1
Einführung in die Informationsverarbeitung Stunde II: Datenstrukturen Manfred Thaller, Universität Köln Köln 22. Oktober 2007
2
I. Grundbegriffe
3
Zahlen Bilder Zeichenketten Geburtstage Briefe Datentyp
4
Addieren Komprimieren Vergleichen Abstand berechnen Beziehen Operationen
5
Zahl {Darstellung, Addieren, …} Bild {Darstellung, Komprimieren, …} Text {Darstellung, Vergleichen, … } Zeit {Darstellung, Abstand berechnen, … } Brief {Darstellung,Beziehen, …} Datenstrukturen
6
Datenstruktur = {Datentyp, Legale Operationen } Datentyp und Datenstruktur oft aber auch synonym!
7
Boolean / Logischer Wert Integer [ Rationale Zahlen ] Realzahlen Zeichen Zeichenketten Basisdatenstrukturen
8
Datenstrukturen geben Regeln wieder, wie ein bestimmter Speicherbereich interpretiert wird. ASCII Zeichen 'a' = 97; 'A' = 65. oder 'Pixel' 97 ist eineinhalb mal heller als 'Pixel' 65. Datenstrukturen und Hardware
9
Festlegungen sind willkürlich. Groß- / Klein v. Umlaute Datenstrukturen und Hardware
10
Zeichen a097A65 b098B66 c099C67 d100D68 e101E69 f102F70 g103G71 h104H72 i105I73 j106J74 k107K75 …………
11
Zeichen a01100001A01000001 b01100010B01000010 c01100011C01000011 d01100100D01000100 e01100101E01000101 f01100110F01000110 g01100111G01000111 h01101000H01001000 i01101001I01001001 j01101010J01001010 k01101011K01001011 …………
12
Zeichen a01100001A01000001 b01100010B01000010 c01100011C01000011 d01100100D01000100 e01100101E01000101 f01100110F01000110 g01100111G01000111 h01101000H01001000 i01101001I01001001 j01101010J01001010 k01101011K01001011 …………
13
Festlegungen sind willkürlich. lower(x) = upper(x) | '00100000 = schnellste verfügbare Operation des Rechners! Zeichen
14
Darstellung von Datenstrukturen sind willkürlich. … können den Aufwand für eine Anwendung aber entscheidend beeinflussen! Merke:
15
Diagrammatische Darstellung: A zeigt auf B Datenstruktur Zeiger AB
16
Diagrammatische Darstellung: Zeiger: Ein Speicherinhalt eines Rechners verweist auf einen anderen. Datenstruktur Zeiger AB
17
Speicher als karierte Zeile Datenstruktur im Speicher 0 1 2 3 4 5 6 7 8 9 10 11
18
Zahl 14123 in Bytes 0 bis 1 Zahl 22445 in Bytes 10 bis 11 14123 22445 Datenstruktur im Speicher 0 1 2 3 4 5 6 7 8 9 10 11
19
Zeichen a in Byte 0 Zeichen q in Byte 11 a q Datenstruktur im Speicher 0 1 2 3 4 5 6 7 8 9 10 11
20
Zeiger in Bytes 0 bis 1 verweist auf Speicherblock, enthaltend xy, beginnend in Byte 10 10 x y Datenstruktur im Speicher 0 1 2 3 4 5 6 7 8 9 10 11
21
Zeiger in Bytes 0 bis 1 verweist auf Speicherblock, enthaltend xy, beginnend in Byte 10. Zeiger graphisch x y 0 1 2 3 4 5 6 7 8 9 10 11
22
Zeiger verweist von einem Datenblock auf einen anderen. Zeiger graphisch
23
II. Technische Datenstrukturen
24
Stacks Auch bekannt als: LIFO – Last In, First Out
25
Lies: Verarbeite: Start Atom 1
26
Lies: Verarbeite: Push to stack Atom 1
27
Lies: Verarbeite: Lies weiter Atom 2 Atom 1
28
Lies: Verarbeite: Push to stack Atom 2 Atom 1
29
Lies: Verarbeite: Lies weiter Atom 3 Atom 2 Atom 1
30
Lies: Verarbeite: Schließlich Atom 5 Atom 4 Atom 3 Atom 2 Atom 1
31
Lies: Verarbeite: Pop from stack Atom 5 Atom 4 Atom 3 Atom 2 Atom 1
32
Lies: Verarbeite: Pop from stack Atom 4 Atom 3 Atom 2 Atom 1
33
Lies: Verarbeite: Pop from stack Atom 3 Atom 2 Atom 1
34
Lies: Verarbeite: Pop from stack Atom 2 Atom 1
35
Lies: Verarbeite: Pop from stack Atom 1
36
Queues Auch bekannt als: FIFO – First In, First Out
37
Lies: Verarbeite: Start Atom 1
38
Lies: Verarbeite: Push to queue Atom 1
39
Lies: Verarbeite: Lies weiter Atom 2 Atom 1
40
Lies: Verarbeite: Push to queue Atom 2 Atom 1
41
Lies: Verarbeite: Lies weiter Atom 3 Atom 2 Atom 1
42
Lies: Verarbeite: Schließlich Atom 5 Atom 4 Atom 3 Atom 2 Atom 1
43
Lies: Verarbeite: Pop from queue Atom 5 Atom 4 Atom 3 Atom 2 Atom 1
44
Lies: Verarbeite: Pop from queue Atom 5 Atom 4 Atom 3 Atom 2
45
Lies: Verarbeite: Pop from queue Atom 5 Atom 4 Atom 3
46
Lies: Verarbeite: Pop from queue Atom 5 Atom 4
47
Lies: Verarbeite: Pop from queue Atom 5
48
Verknüpfte Listen
49
Erzeuge Atom 1 Atom 1
50
Kopf: Mache Atom 1 zum Listenkopf Atom 1
51
Kopf: Erzeuge Atom 2 Atom 1 Atom 2
52
Kopf: Verbinde Atom 2 mit Liste Atom 1 Atom 2
53
Kopf: Erzeuge Atom 3 Atom 1 Atom 2 Atom 3
54
Kopf: Verbinde Atom 3 mit Liste Atom 1 Atom 2 Atom 3
55
Kopf: Lösche Atom 2 Atom 1 Atom 2 Atom 3
56
Kopf: Füge Atom 4 ein Atom 1 Atom 3 Atom 4
57
Verknüpfte Listen
58
Kopf: Schwanz: Doppelt verknüpfte Liste Atom 1 Atom 2 Atom 3
59
Kopf: Schwanz: Löschen von Atom 2 Atom 1 Atom 2 Atom 3
60
Kopf: Schwanz: Einfügen von Atom 4 Atom 1 Atom 4 Atom 3
61
III. Inhaltliche Datenstrukturen
62
::= ein 3-Tupel (oder Tripel) { E, I, O } wobei E ::= Externe Darstellung I ::= Interne Darstellung O ::= Menge auf I definierter Operationen (Notation: " ::= " = "definiert als ") Datentypen allgemein:
63
E Regel für "4.6.2007" I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Offset t vom Ursprung definiert ist. O t-less(i,j) ===> Boolean t-less(4.6.2007,5.6.2007) ===> True t-subtract(i,j) ===> Ganze Zahl t-subtract(5.6.2007,4.6.2007) ===> 1 Datentyp Zeit allgemein:
64
E Regel für "pri non jun 2007" I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Offset t vom Ursprung definiert ist. O t-less(i,j) ===> Boolean t-less(pri non jun 2007,non jun 2007) ===> True t-subtract(i,j) ===> Ganze Zahl t-subtract(non jun 2007,pri non jun 2007) ===> 1 Datentyp Historische Zeit I
65
I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Offset t vom Ursprung definiert ist. 0 i t Datentyp Historische Zeit I
66
E Regel für "6 Tammuz 5763" I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Offset t vom Ursprung definiert ist. O t-less(i,j) ===> Boolean t-less(6 Tammuz 5763,7 Tammuz 5763) ===> True t-subtract(i,j) ===> Ganze Zahl t-subtract(7 Tammuz 5763,6 Tammuz 5763) ===> 1 Datentyp Historische Zeit II
67
I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Offset t vom Ursprung definiert ist. 0 i t Datentyp Historische Zeit II
68
E Regel für "Freitag nach Fronleichnam 2007" I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Offset t vom Ursprung definiert ist. O t-less(i,j) ===> Boolean t-less(Freitag nach Fronleichnam 2007,Samstag nach Fronleichnam 2007) ===> True t-subtract(i,j) ===> Ganze Zahl t-subtract(Samstag nach Fronleichnam 2007,Freitag nach Fronleichnam 2007) ===> 1 Datentyp Historische Zeit III
69
I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Offset t vom Ursprung definiert ist. 0 i t Datentyp Historische Zeit III
70
E Regel für "4.4.1458" I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Vektor von Offsets t vom Ursprung definiert ist. O t-less(i,j) ===> mehrwertiger Wahrheitswert { True, Undecidable, False } t-less(4.4.1458, 5.4.1458) ===> Undecidable t-subtract(i,j) ===> "Historische Zahl" t-subtract(5.4.1458,4.4.1458) ===> { 1, 366 } Datentyp Historische Zeit IV
71
I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Vektor von Offsets t vom Ursprung definiert ist. 0 i i t Datentyp Historische Zeit IV
72
E Regel für "14.7.1763 - 24.10.1763" I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Vektor von Offsetpaaren t vom Ursprung definiert ist. O t-less(i,j) ===> kontinuierlicher Wahrheitswert (Z.B. Grad der Überlappung von n Intervallen.) t-less(4.4.1463 - 14.7.1763, 14.7.1763 - 24.10.1763) ===> 99 % t-subtract(i,j) ===> "Historische Zahl" t-subtract(14.7.1763 - 24.10.1763, 4.4.1463 - 14.7.1763) ===> { 0, 200 } Datentyp Historische Zeit V
73
I Zeit ist ein Vektor von Tagen seit einem willkürlichen Tag 0, wobei ein beliebiger Tag i als Vektor von Offsetpaaren t vom Ursprung definiert ist. 0 i i t Datentyp Historische Zeit IV
Ähnliche Präsentationen
© 2025 SlidePlayer.org Inc.
All rights reserved.