Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Programmieren in C Dynamische Listen / Bäume Hochschule Fulda – FB AI Sommersemester 2014 Peter Klingebiel, HS Fulda, DVZ."—  Präsentation transkript:

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

2 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ2 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.

3 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ3 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;

4 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ4 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); }

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

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

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

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

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

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

11 Programmieren in C - Peter Klingebiel - HS Fulda - DVZ11 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

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

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

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

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

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

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

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

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

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

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

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


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

Ähnliche Präsentationen


Google-Anzeigen