Datenorganisation - Hochschule Anhalt

Werbung
Datenorganisation
• Datenstrukturen:
Arrays, Listen und Bäume
• Standardalgorithmen:
Suchen und Sortieren
• Dateiverwaltung
Informatik 2006
Datenorganisation
Seite 1
Klöditz
Hochschule Anhalt (FH)
Was ist ein array?
• Vektor (eindimensionales Feld)
– a1 a2 a3 a4 ... an
• Matrix (zweidimensionales Feld)
–
–
–
–
m1,1 m1,2 m1,3 ... m1,r
m2,1 m2,2 m2,3 ... m2,r
...
ms,1 ms,2 ms,3 ... ms,r
• Datenfelder (arrays)
– geordnete Zusammenfassung von Datenelementen gleichen
Datentyps (int, float, char, ...);
auch mehr als zweidimensional zulässig
– direkter Zugriff über Indices; Adressrechnung notwendig
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenorganisation
Seite 2
Array-Datentyp
• Datentyp:
• Vereinbarung:
• Zugriff:
entspricht dem Datentyp der Elemente
Name des arrays
+ Anzahl der Elemente
+ deren Datentyp
über Indices (Adress-Rechnung) oder Zeiger
• Beispiel:
– Vereinbarung: float werte[20][3];
– Zugriff:
werte[12][2]
Informatik 2006
Datenorganisation
Seite 3
Klöditz
Hochschule Anhalt (FH)
Vereinbarung von arrays
• Funktion:
– reserviert Speicherplatz für die angegebene Anzahl Elemente im
entsprechenden Datentyp
– Index des 1. Elementes in der Programmiersprache C ist immer 0;
alsein mit x[10] vereinbartes Array enthält die Elemente
x[0], x[1], ..., x[9]
• Beispiele:
int x[10];
char satz[40];
float matrix[100][20], tabelle[12][4];
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenorganisation
Seite 4
Daten-Eingabe in arrays
• nur möglich unter Benutzung von Zyklen zur Eingabe von
Werten in die einzelnen Elemente:
– for-Anweisung
• bei bekannter, fester Anzahl von Elementen
– while-Anweisung
• bei unbekannter, variabler Anzahl
• Test einer Abbruchbedingung (am Anfang absichern!)
– do-Anweisung
• Test der Abbruchbedingung am Ende
Informatik 2006
Datenorganisation
Seite 5
Klöditz
Hochschule Anhalt (FH)
Zugriff zu array-Elementen
• Zugriff erfolgt über einen Index bzw. mehrere Indices
• Zuweisung:
x[3] = a*c1 + ...;
• in Ausdrücken:
anzahl = x[1]+x[2]:
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenorganisation
Seite 6
Anwendungsbeispiele
• Verarbeitung von Tabellen / Matrizen
• Sortieren:
– BubbleSort
– SelectionSort
– ...
• Statistische Methoden:
– Datenauswertungen
– Abweichungen von statistischen Maßen
– Regressionsanalyse
Informatik 2006
Datenorganisation
Seite 7
Klöditz
Hochschule Anhalt (FH)
Anwendung von Arrays
SelectionSort Struktogramm
Eingabe
LIES (anzahl);
für i von 1 bis anzahl
LIES (zahl[i]);
Verarbeitung
für j von 1 bis (anzahl-1)
min=zahl[j]; pos=j;
für i von (j+1) bis anzahl
ja
zahl[i]<min
nein
?
min=zahl[i];
pos=i;
zahl[pos]=zahl[j];
zahl[j]=min;
Ausgabe
Klöditz
Hochschule Anhalt (FH)
für i von 1 bis anzahl
SCHREIBE (zahl[i]);
Informatik 2006
Datenorganisation
Seite 8
Anwendung von Arrays
SelectionSort
#include <stdio.h>
void main()
{ int min, pos;
int i,j,anz;
int zahl[50];
//
//
//
Minimum, Position von min
Index, Anzahl der Zahlen
indizierte Zahlenwerte
printf("Wieviele Zahlen? = ");
// unsortiert einlesen
scanf("%d",&anz);
for (i=0; i<anz; i++) {
printf("%2i : ",i+1);
scanf("%i", &zahl[i]);
}
for (i=0; i<anz-1; i++) {
// Sortierung
min=zahl[i];
pos=i;
for (j=i+1; j<anz; j++)
if (zahl[j]<min) {
min=zahl[j];
pos=j;
}
zahl[pos]=zahl[i];
zahl[i]=min;
}
printf ("\n\nsortiert:\n");
// sortiert ausgeben
for (i=0; i<anz; i++)
printf("%2i : %6i\n", i+1, zahl[i]);
}
Informatik 2006
Datenorganisation
Seite 9
Klöditz
Hochschule Anhalt (FH)
Zeichenketten
• Speicherung in Vektoren vom Typ char
• variable Länge durch Abschlusszeichen '\0' (ASCII-Code 0)
gekennzeichnet; Elemente nach dem Abschlusszeichen haben
undefinierten Inhalt
• in C keine Operatoren für Zeichenkettenverarbeitung
vorhanden, aber in der C-Bibliothek string.h existieren
zahlreiche Routinen
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenorganisation
Seite 10
Vereinbarung von Zeichenketten
• Vereinbarung als Vektoren vom Typ char
• Beispiele:
char str[50];
char name[20] = "Meier";
Informatik 2006
Datenorganisation
Seite 11
Klöditz
Hochschule Anhalt (FH)
Verarbeitung von Zeichenketten
• Ein- und Ausgabe:
– formatierte Ein- und Ausgabe mit Format "%s"
– Beispiel:
scanf ("%s", str); kein & vor dem Bezeichner !
printf ("%s", str);
• Zugriff auf einzelne Zeichen:
– elementweise analog Vektoren
• Routinen für die Verarbeitung (in string.h enthalten):
–
–
–
–
strcat
strchr
strcmp
strcpy
Klöditz
Hochschule Anhalt (FH)
verbindet zwei Strings zu einem
sucht ein bestimmtes Zeichen im String
vergleicht zwei Zeichenketten lexikographisch
kopiert einen String auf einen String
Informatik 2006
Datenorganisation
Seite 12
Dynamische Datenstrukturen
• Array
–
–
–
–
–
statische Datenstruktur
Größe muss bei Definition bekannt sein und bleibt konstant
gesamter Speicherplatz bleibt reserviert, auch wenn nicht benutzt
direkter Zugriff, wenn Position bekannt, sonst sequentielle Suche
Einfügen mitten in Array nur nach Verschiebung der nachfolgenden
Elemente möglich
– Löschen eines Elementes hinterlässt freien Speicherplatz;
problematisch
• Schlussfolgerung: für viele Aufgaben nicht gut geeignet
• Ausweg: Dynamische Datenstrukturen, z.B. Listen und Bäume
Informatik 2006
Datenorganisation
Seite 13
Klöditz
Hochschule Anhalt (FH)
Lineare Liste
Begriffe
first
key
next
key
content
next
key
content
NULL
content
•
Eigenschaften:
– sequentielle Verkettung von Datensätzen
– Ordnungsprinzip: Schlüssel (key)
– Speicherbedarf wächst mit der Größe der Liste; leere Liste braucht nur first
•
Begriffe:
–
–
–
–
–
first
key
next
content
NULL
Klöditz
Hochschule Anhalt (FH)
-
Anker, Wurzel; Adresse des logischen Listenanfangs
Schlüssel; Ordnungskriterium
Adresse des logischen Nachfolgers
Datensatz-Inhalt
leere Adresse; logisches Ende der Liste
Informatik 2006
Datenorganisation
Seite 14
Lineare Liste
Beispiel
*Biber
Biber
*Dachs
Dachs
content
*Habicht
Habicht
content
*Maus
Maus
content
*Uhu
Uhu
content
NULL
content
Informatik 2006
Datenorganisation
Seite 15
Klöditz
Hochschule Anhalt (FH)
Operationen in linearen Listen
Einfügen am Anfang
Algorithmus:
Adler
– Speichern des neuen Listenelementes
auf beliebigen freien Speicherplatz
– Adresse der bisherigen Wurzel in next
des neuen Listenelementes eintragen
– Adresse des neuen Listenelementes in
first eintragen
*Biber
content
*Adler
Biber
*Dachs
Dachs
content
*Habicht
Habicht
content
*Maus
Maus
content
*Uhu
Uhu
content
NULL
content
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenorganisation
Seite 16
Operationen in linearen Listen
Einfügen innerhalb der Liste
Adler
*Biber
content
Katze
*Maus
content
*Adler
Biber
*Dachs
Dachs
content
*Habicht
Habicht
content
*Katze
Maus
content
*Uhu
Uhu
content
NULL
Algorithmus:
–
–
–
–
Speicherung des neuen Elementes
auf beliebigen freien Speicherplatz
Suchen der Einfügestelle (sequentielles
Durchlaufen der Liste)
Adresse des logischen Nachfolgers aus next
des logischen Vorgängers in next des neuen
Elementes eintragen
Adresse des neuen Elementes in next des
logischen Vorgängers eintragen
content
Informatik 2006
Datenorganisation
Seite 17
Klöditz
Hochschule Anhalt (FH)
Operationen in linearen Listen
Einfügen am Ende der Liste
Adler
*Biber
Zebra
content
Katze
NULL
*Maus
content
content
*Adler
Biber
Algorithmus:
–
–
–
–
*Dachs
Dachs
content
*Habicht
Habicht
content
*Katze
Maus
content
*Uhu
Uhu
content
*Zebra
Speicherung
des neuen Elementes auf beliebigen
freien Speicherplatz
Suchen der Einfügestelle
(sequentielles Durchlaufen der Liste)
Adresse NULL aus next des logischen Vorgängers
in next des neuen Elementes eintragen
Adresse des neuen Elementes in next
des bisherigen logisch letzten Elementes eintragen
Klöditz
Hochschule Anhalt (FH)
content
Informatik 2006
Datenorganisation
Seite 18
Operationen in linearen Listen
Löschen eines Elementes der Liste
Adler
*Biber
Zebra
content
Katze
NULL
*Maus
content
content
*Adler
Biber
*Dachs
Dachs
content
*Katze
Habicht
content
*Katze
Maus
content
*Uhu
Uhu
content
*Zebra
Algorithmus:
–
–
–
Suchen
des zu löschenden Elementes
(sequentielles Durchlaufen der Liste)
Adresse des logischen Nachfolgers
des zu löschenden Elementes aus next dieses
Elementes in next des logischen Vorgängers eintragen
(anstelle der Adresse des zu löschenden Elementes)
Speicherplatz des gelöschten Elementes freigeben
content
Informatik 2006
Datenorganisation
Seite 19
Klöditz
Hochschule Anhalt (FH)
Lineare Liste
Implementierung
• Voraussetzung: Direktzugriffsspeicher
• Notwendiger Speicherplatz:
– für n Datensätze zu je m Bytes = n*m Bytes
– Speicherplatz für Anker
• Verwaltung des Speichers
– durch Programm
– durch Betriebssystem
• Satzaufbau:
– Schlüsselattribut
– Satzinhalt / Daten
– Zeiger auf logisch nächsten Datensatz
Klöditz
Hochschule Anhalt (FH)
key
content
next
Informatik 2006
Datenorganisation
Seite 20
Lineare Liste
Probleme
• aufwändiges Durchsuchen:
Rückwärtsverkettung zusätzlich, Mehrfachverkettung
• Speicherverwaltung der leeren Datensätze:
Bitmap (1 bit/Datensatz) oder
Lineare Liste freier Datensätze
(Ankeradresse + Kettung der leeren Datensätze) oder ... ?
• logische Reihenfolge entspricht nicht physischer Reihenfolge:
Reorganisation = Herstellen der Übereinstimmung von logischer
und physischer Folge
Informatik 2006
Datenorganisation
Seite 21
Klöditz
Hochschule Anhalt (FH)
Binärer Suchbaum
• besteht aus Knoten mit genau einem Eingang und max. zwei
Ausgängen
• Ordnung im Baum:
– nach Schlüsselwerten der jeweiligen Knoten
– alle Knoten haben links von einem Knoten kleinere, rechts größere
Schlüsselwerte als der Ausgangsknoten
46
22
84
19
11
Klöditz
Hochschule Anhalt (FH)
34
20
31
72
36
61
94
75
85
99
Informatik 2006
Datenorganisation
Seite 22
Binärbäume
Begriffe
• Baum (tree)
= endlicher, schwach zusammenhängender Graph,
für dessen Knoten gilt:
• genau ein Knoten hat keinen Eingang (Wurzel, root)
• alle anderen Knoten haben genau einen Eingang
• endlicher Graph
= Menge Knoten N (nodes) + Menge Kanten E (edges)
• Binärer Baum (binary tree)
= geordneter Baum, der leer ist oder für dessen Knoten gilt:
• außer den Endknoten haben alle Knoten genau zwei Ausgänge
• maximal ein "Kind" jedes "Elternknotens" ist leer
Informatik 2006
Datenorganisation
Seite 23
Klöditz
Hochschule Anhalt (FH)
Binärbäume
Begriffe
Vollständiger Baum:
Unausgeglichener Baum:
alle Knoten besetzt
ungleiche Tiefe
7
Wurzel
Tiefe 0
5
Vorgänger
Tiefe 1
3
7
Direkter Nachfolger
Tiefe 2
1
4
6
5
19
Unterbaum
3
6
Blätter
9
1
4
Brüder
Ausgeglichener Baum:
beide Äste gleiche Tiefe
oder max. eine Ebene
Unterschied
7
5
4
19
6
8
2
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenorganisation
Seite 24
Binärer Suchbaum
Erzeugen
• Ausgangspunkt: Folge von Werten
• Beispiel:
– 46 84 94 22 72 19 20 34 36 61 99 85 75 11 31
46
22
84
19
11
34
20
31
72
36
61
94
75
85
99
Informatik 2006
Datenorganisation
Seite 25
Klöditz
Hochschule Anhalt (FH)
Binärer Suchbaum
Hinzufügen
• Hinzufügen:
– 29 3 52 87 60
(in dieser Reihenfolge)
• Algorithmus:
– Durchlaufen des Baumes bis zu einem Blatt
– Anhängen des neuen Knotens
46
22
84
19
11
3
34
20
29
31
72
36
61
52
94
75
85
99
87
60
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenorganisation
Seite 26
Binärer Suchbaum
Löschen
• Algorithmus:
– Durchlaufen des Baumes bis zum zu löschenden Knoten
– Fallunterscheidung:
• Endknoten
• Knoten
mit nur einem Nachfolger:
Nachfolger ersetzt den zu löschenden Knoten
• Knoten mit zwei Nachfolgern: "größter" Knoten im "linken" Unterbaum
bzw. "kleinster" Knoten im "rechten" Unterbaum ersetzt den zu
löschenden Knoten
Informatik 2006
Datenorganisation
Seite 27
Klöditz
Hochschule Anhalt (FH)
Binärer Suchbaum
Suchen / Durchlaufen
• Algorithmus:
– Durchlaufen des Baumes bis zum gesuchten Knoten oder zu
einem Blatt (= "nicht gefunden")
• Beispiel:
maxTiefe = 20
– Anzahl der Knoten eines Baumes:
nB = 2(maxTiefe + 1) -1
2.097.151
– Durchschnittliche Anzahl der Zugriffe:
vB = ( maxTiefe+1) / 2
10,5
– Anzahl der Zugriffe in einer Liste
(zum Vergleich):
v L = ( nL + 1 ) / 2
Klöditz
Hochschule Anhalt (FH)
1.048.576
Informatik 2006
Datenorganisation
Seite 28
Suchverfahren
Begriffe
• Suchen
= Bestimmen der Position (Adresse) eines Wertes in einer Datenfolge
• Sequentielles Suchen
– einfachstes Suchverfahren
– keine Vorbedingungen (Ordnung) notwendig
– hoher Suchaufwand:
im Durchschnitt n/2 Zugriffe für eine n-elementige Datenmenge
Informatik 2006
Datenorganisation
Seite 29
Klöditz
Hochschule Anhalt (FH)
Suchverfahren
Binäre Suche
• Voraussetzung: sortierte Folge
• Algorithmus:
1. Anfangsindex first=1; Anzahl der Werte n
2. Test des Wertes "in der Mitte" der Folge,
also bei Position m = (first + n/2)
3. Ist das der gesuchte Wert: Ende
4. Ist der gesuchte Wert größer,
dann Ausschluss des Bereiches von Position first bis (first + n/2):
first = first + n/2; n=(n+1)/2
sonst Ausschluss des Bereiches von Position (first + n/2) bis n:
n=(n+1)/2
5. Wiederhole ab Schritt 2.
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenorganisation
Seite 30
Suchverfahren
Binäre Suche
• Beispiel: gesucht 45 in der vorliegenden Folge
1
6
2
9
3
12
4
24
5
45
6
7
46
47
8
58
9
62
10
71
11
73
12
88
13
94
14
15
102
106
1. Zugriff
2. Zugriff
3. Zugriff
4. Zugriff:
gefunden
Informatik 2006
Datenorganisation
Seite 31
Klöditz
Hochschule Anhalt (FH)
Daten sortieren
verschiedene Sortierverfahren
167
817
395
291
103
444
221
141
386
257
291
221
103
395
167
257
444
291
221
444
291
386
141
817
395
386
444
257
395
817
291
817
103
103
817
444
444
817
221
221
817
141
141
817
386
386
817
257
257
817
– SelectionSort
167
103
817
141
395
167
– BubbleSort
167
817
395
Klöditz
Hochschule Anhalt (FH)
395
817
291
Informatik 2006
Datenorganisation
Seite 32
Sortierverfahren
SelectionSort
0
36
29
27
74
41
16
63
22
11
52
1
11
29
27
74
41
16
63
22
36
52
2
11
16
27
74
41
29
63
22
36
52
3
11
16
22
74
41
29
63
27
36
52
4
11
16
22
27
41
29
63
74
36
52
5
11
16
22
27
29
41
63
74
36
52
6
11
16
22
27
29
36
63
74
41
52
7
11
16
22
27
29
36
41
74
63
52
8
11
16
22
27
29
36
41
52
63
74
9
11
16
22
27
29
36
41
52
63
74
Informatik 2006
Datenorganisation
Seite 33
Klöditz
Hochschule Anhalt (FH)
Sortierverfahren
SelectionSort
• Algorithmus für Sortierung in aufsteigender Folge:
1. Setze den Anfangszeiger auf das (absolut) 1. Element der Folge.
2. Durchsuche die Folge vom (aktuellen) Anfangszeiger bis zum Ende
nach dem kleinsten Element und merke Dir dessen Position und
Wert.
3. Vertausche das (jeweils) 1. Element der Suchfolge mit dem
kleinsten; dieses steht damit in der sortierten Folge an der
"richtigen Stelle".
4. Setze den Anfangszeiger um eine Position weiter, auf das nunmehr
1. Element der verbleibenden Folge.
5. Wiederhole die Schritte 2. bis 5. solange, bis der Anfangszeiger auf
das vorletzte Element zeigt; die Folge ist dann sortiert.
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenorganisation
Seite 34
Sortierverfahren
SelectionSort
void SelectionSort (int arr[], long int anz)
{
int min;
long int h, k, pos;
for (h=0; h<anz-1; h++) {
min = arr[h];
pos = h;
for (k=h+1; k<anz; k++) {
if (arr[k] < min) {
min = arr[k];
pos = k;
}
}
arr[pos] = arr[h];
arr[h]
= min;
}
}
Informatik 2006
Datenorganisation
Seite 35
Klöditz
Hochschule Anhalt (FH)
Sortierverfahren
BubbleSort
1
36
29
27
74
41
16
63
22
11
52
29
36
27
74
41
16
63
22
11
52
29
27
36
74
41
16
63
22
11
52
29
27
36
74
41
16
63
22
11
52
29
27
36
41
74
16
63
22
11
52
29
27
36
41
16
74
63
22
11
52
29
27
36
41
16
63
74
22
11
52
29
27
36
41
16
63
22
74
11
52
29
27
36
41
16
63
22
11
74
52
29
27
36
41
16
63
22
11
52
74
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenorganisation
Seite 36
Sortierverfahren
BubbleSort
0
36
29
27
74
41
16
63
22
11
52
1
29
27
36
41
16
63
22
11
52
74
2
27
29
36
16
41
22
11
52
63
74
3
27
29
16
36
22
11
41
52
63
74
4
27
16
29
22
11
36
41
52
63
74
5
16
27
22
11
29
36
41
52
63
74
6
16
22
11
27
29
36
41
52
63
74
7
16
11
22
27
29
36
41
52
63
74
8
11
16
22
27
29
36
41
52
63
74
9
11
16
22
27
29
36
41
52
63
74
Informatik 2006
Datenorganisation
Seite 37
Klöditz
Hochschule Anhalt (FH)
Sortierverfahren
BubbleSort
• Algorithmus für Sortierung in aufsteigender Folge:
1.
2.
3.
4.
Setze den Anfangszeiger auf das 1. Element der Folge.
Setze die "Tauschkennung" auf 0.
Vergleiche das 1. und das 2. Element der Folge.
Falls das (jeweils) 2. kleiner ist als das (jeweils) 1., vertausche
beide miteinander und erhöhe die "Tauschkennung".
5. Wiederhole Schritt 3. und 4. für alle Elementpaare der Folge.
6. Wiederhole die Schritte 1. bis 5. für die unsortierte Teilfolge,
solange die "Tauschkennung" nach Durchlaufen der Schritte 3. bis
5. größer 0 ist oder aber (n-1) Durchläufe erreicht sind.
• Verbessungsmöglichkeiten:
– abwechselnd von vorn und von hinten beginnen
– Kombination von beiden
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenorganisation
Seite 38
Sortierverfahren
BubbleSort
void BubbleSort (int arr[], long int anz)
{
int tausch, hilf;
long int k;
do {
tausch = 0;
for (k=0; k<anz-1;
if (arr[k+1] <
hilf
=
arr[k]
=
arr[k+1] =
tausch++;
}
}
anz--;
} while (tausch);
k++) {
arr[k]) {
arr[k];
arr[k+1];
hilf;
}
Informatik 2006
Datenorganisation
Seite 39
Klöditz
Hochschule Anhalt (FH)
Vergleich der Sortierverfahren
Animation:
http://www.inf.hs-anhalt.de/~Worzyk/IiN/Applets.htm
E:\modul_04_cd\Lektion_do06\text\Java\sortAlgorithms.html
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenorganisation
Seite 40
Sortierverfahren
Bewertung
• Experimentelle Untersuchung:
– Erzeugung unterschiedlicher Mengen zufallsverteilter
Ausgangsdaten
– Zeitmessung, bezogen auf den reinen Sortiervorgang, für
verschiedene Datenmengen und verschiedene Sortierverfahren
– statistische Auswertung
• Theoretische Untersuchung:
– Analyse des Aufwandes (Speicherplatz-, Rechenzeitbedarf) in
Abhängigkeit von der zu sortierenden Datenmenge
Informatik 2006
Datenorganisation
Seite 41
Klöditz
Hochschule Anhalt (FH)
Sortierverfahren
Zeitmessungen
• Erzeugen unsortierter Daten
• Start- und Endzeit messen
• Versuchsparameter:
– Sortierverfahren
– zu sortierende Menge
– Rechnerleistung
• Reproduzierbarkeit gewährleisten
• statistische Auswertung
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenorganisation
Seite 42
Datenspeicherung
• Arbeitsspeicher ist flüchtig, enthält die Daten nur während der
Verarbeitung (Laufzeit des jeweiligen Programms)
• dauerhafte Speicherung auf Datenträger, z.B. Platte, Diskette,
CD-ROM, DVD, USB-Stick, Magnetband, ...
• Speicherung als Datei, vom Betriebssystem verwaltet
• Dateitypen:
– sequentielle Dateien: Schreiben und Lesen in gleicher,
feststehender (sequentieller) Reihenfolge
– Direktzugriffsdateien: Schreiben und Lesen in beliebiger
(wahlfreier) Reihenfolge; zum Zugriff Beziehung zwischen Daten
(Schlüssel) und Speicheradresse notwendig
Informatik 2006
Datenorganisation
Seite 43
Klöditz
Hochschule Anhalt (FH)
Probleme der Dateiarbeit
• jede Datei hat eigene Struktur
• für alle Datei-Operationen (Hinzufügen, Löschen, Ändern,
Suchen, ...) je Dateistruktur eigene Programme notwendig;
• jede Dateistruktur-Änderung hat Änderungen bei allen
Programmen zur Folge, die diese Datei nutzen
• keine Unabhängigkeit von Daten und Programmen
• Mehrfachnutzung von gleichen Daten wird behindert
• Ausweg: Datenbanksysteme
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenorganisation
Seite 44
Kontrollfragen
1. Wozu dienen Arrays? Wie werden sie eingelesen, wie
verarbeitet und wie ausgegeben?
2. Was ist eine Zeichenkette? Wir sie eingelesen, verarbeitet und
ausgegeben?
3. Was verstehen Sie unter dynamischen Datenstrukturen?
4. Wie ist eine Liste organisiert und was nützt sie?
5. Wie ist ein binärer Suchbaum organisiert und wozu wird er
verwendet?
6. Welche unterschiedlichen Sortierverfahren kennen Sie und wie
funktionieren sie?
7. Wie kann man Leistungsparameter von Sortier-Algorithmen
bestimmen?
8. Wie werden Daten auf externen Speichern abgelegt und welche
Probleme können dabei entstehen?
Klöditz
Hochschule Anhalt (FH)
Informatik 2006
Datenorganisation
Seite 45
Herunterladen