Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Programmieren in C Dynamische Listen / Bäume

Ähnliche Präsentationen


Präsentation zum Thema: "Programmieren in C Dynamische Listen / Bäume"—  Präsentation transkript:

1 Programmieren in C Dynamische Listen / Bäume
Hochschule Fulda – FB AI Sommersemester 2014 Peter Klingebiel, HS Fulda, DVZ

2 Dynamische Listen 1 Häufig ist die Anzahl der zu speichernden und zu bearbeitenden Daten erst zur Laufzeit des Programms bekannt Felder ungeeignet: müssen zur Compilezeit oder in Blöcken dimensioniert werden  dynamische Datenstrukturen einfach verkettete Listen doppelt verkettete Listen Bäume usw. Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

3 Dynamische Listen 2 Beispiel: einfach verkettete Liste /* Datentyp f. einfach verkettete Liste */ typedef struct _slist { int value; /* Daten */ struct slist *next; /* Nachfolger */ } slist; Beispiel: doppelt verkette Liste /* Datentyp f. doppelt verkettete Liste */ typedef struct _dlist { int value; /* Daten */ struct dlist *prev; /* Vorgaenger */ struct dlist *next; /* Nachfolger */ } dlist; Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

4 Dynamische Listen 3 Objekte der Listentypen werden zur Laufzeit
alloziert slist *insert(slist *llp, int value){ slist *nlp; nlp = (slist *) malloc(sizeof(slist)); besetzt bzw. initialisiert nlp-> value = value; nlp->next = NULL; und in die Liste eingehängt if(llp) llp->next = nlp; return(nlp); } Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

5 Dynamische Listen 4 Einfache Liste: Erzeugung 1. Element
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

6 Dynamische Listen 5 Einfache Liste: 2. Element und Verkettung
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

7 Dynamische Listen 6 Einfache Liste: 3. Element und Verkettung
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

8 Dynamische Listen 7 Einfache Liste: 4. Element und Verkettung
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

9 Dynamische Listen 8 Einfache Liste: 5. Element und Verkettung
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

10 Dynamische Listen 9 Einfache Liste: Verkettung zum Ringpuffer
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

11 Dynamische Listen 10 Erstes Element wird oft Wurzel, Anker oder Kopf der Liste genannt Durchlaufen der Liste i.d.R. von der Wurzel der Liste aus slist *root, *slp; for(slp = root; slp; slp = slp->next) printf("%d\n", slp->value); Wird das letzte Listenobjekt mit der Wurzel verlinkt  Ringpuffer Sortieren bei Erzeugen der Liste möglich Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

12 Dynamische Listen 11 slist.c - einfach verkettete Liste
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

13 Dynamische Listen 12 sortlist.c - einfach verkettete sortierte Liste
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

14 Dynamische Listen 13 Doppelte Liste: Erzeugung 1. Element
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

15 Dynamische Listen 14 Doppelte Liste: 2. Element und Verkettung
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

16 Dynamische Listen 15 Doppelte Liste: 3. Element und Verkettung
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

17 Dynamische Listen 16 Doppelte Liste: 4. Element und Verkettung
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

18 Dynamische Listen 17 Doppelte Liste: Verkettung zum Ringpuffer
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

19 Dynamische Listen 18 dlist1.c - doppelt verkettete Liste
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

20 Dynamische Listen 19 dlist2.c - doppelt verk. Liste als Ringpuffer
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

21 Dynamische Listen 20 Binäre Bäume
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ

22 Dynamische Listen 21 wordcount.c - sortierter binärer Baum
Programmieren in C - Peter Klingebiel - HS Fulda - DVZ


Herunterladen ppt "Programmieren in C Dynamische Listen / Bäume"

Ähnliche Präsentationen


Google-Anzeigen