Programmieren in C Dynamische Listen / Bäume

Slides:



Advertisements
Ähnliche Präsentationen
Hochschule Fulda – FB ET Sommersemester 2010
Advertisements

Hochschule Fulda – FB ET Sommersemester 2010
Hochschule Fulda – FB ET Sommersemester 2010
<d,a,s, ,i,s,t, ,e,i,n,e, ,L,i,s,t,e>
Sortieren mit Binären Bäumen
Sortierverfahren Richard Göbel.
Motivation Richard Göbel.
Baumstrukturen Richard Göbel.
Dynamisches Array als "verkettete Liste". Ein Vergleich.
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (05 – Elementare Datenstrukturen) Prof. Th. Ottmann.
Informatik II, SS 2008 Algorithmen und Datenstrukturen Vorlesung 6 Prof. Dr. Thomas Ottmann Algorithmen & Datenstrukturen, Institut für Informatik Fakultät.

Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Operationen auf verketteten Listen
Diskrete Mathe II Übung IKG - Übung Diskrete Mathe II – Jörg Schmittwilken 2 Ü6 Wendet den Scan-Line Algorithmus auf unten stehende Situation.
IKG - Übung Diskrete Mathe I – Jörg Schmittwilken
Vorbereitung: struct SX { int x; struct SX *p; } *px, *ph; px: Zeiger auf Listen- anfang ph: Hilfszeiger px = NULL; px zeigt auf leere Liste px.
Hochschule Fulda – FB ET Sommersemester 2010
Weiteres Programm Studium des Breitendurchlaufs Hierzu
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Einfach verkettete Listen
Einfach verkettete Listen (OOP)
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Programmieren in C Zeichen-/Stringfunktionen Dynamischer Speicher
2. Die rekursive Datenstruktur Baum 2
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Programmiersprache C 4
Algorithmen und Datenstrukturen Übungsmodul 6
Einfach und doppelt verkettete Listen in JAVA by Jens Weibler
Programmieren in C Dynamische Listen / Bäume
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Thomas Hilpold: Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger.
Programmieren in C Grundlagen C 5
Informatik II Grundlagen der Programmierung Programmieren in C Benutzerinteraktion / Ein- und Ausgabe Hochschule Fulda – FB ET Sommersemester
Programmieren in C Überblick C "Was ist wichtig?"
Programmieren in C Grundlagen C 3 Hochschule Fulda – FB AI Wintersemester 2013/14 Peter Klingebiel, HS Fulda, DVZ.
Programmieren in C Grundlagen C 2
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Informatik II Grundlagen der Programmierung Programmieren in C printf() mit variabler Feldbreite Hochschule Fulda – FB ET Sommersemester 2014
Hochschule Fulda – FB ET Sommersemester 2014
Informatik II Grundlagen der Programmierung Programmieren in C Funktionen, Adressen, Zeiger Hochschule Fulda – FB ET Sommersemester 2014
Informatik II Grundlagen der Programmierung Programmieren in C Ausflug printf() Hochschule Fulda – FB ET Sommersemester 2014
Hochschule Fulda – FB ET Sommersemester 2014
Programmieren in C Module und Bibliotheken Hochschule Fulda – FB AI Sommersemester Peter Klingebiel, HS Fulda, DVZ.
Programmieren in C Grundlagen C 2
Hochschule Fulda – FB AI Sommersemester 2014
Programmieren in C Sortieren, Suchen
Programmieren in C "Was ist wichtig?"
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Binärbäume.
Dynamisches Array als "verkettete Liste". Ein Vergleich.
1 // Verkettete Liste 2 // demonstriert verkettete Listen und // Rekursion // (Einfügen am "Fuß") // #include struct Liste { int Element; Liste *weiter;
Pointer, Arrays und verkettete Listen. Mehrdimensionale Arrays  Pointer auf ein Array von Pointern  int32 **matrix = new int32*[3];  matrix: Zeiger.
Tutorium Software-Engineering SS14 Florian Manghofer.
Programmieren in C Dateien
Programmieren in C Einführung
Klausur „Diskrete Mathematik II“
Programmieren in C Zeichen-/Stringfunktionen Dynamischer Speicher
Projektmodul DM Wearables
Programmieren in C Grundlagen C 2
AlgoDat Fragen zu Vorlesung und Klausur
Hochschule Fulda – FB AI Sommersemester 2017
Programmieren in C Wie speichert C
Hochschule Fulda – FB AI Wintersemester 2014/15
Projektmodul DM Wearables
Programmieren in C Module und Bibliotheken
Dynamisches Array als "verkettete Liste"
Hochschule Fulda – FB AI Sommersemester 2018
2. Die rekursive Datenstruktur Baum 2.1 Von der Liste zum Baum
 Präsentation transkript:

Programmieren in C Dynamische Listen / Bäume Hochschule Fulda – FB AI Wintersemester 2014/15 http://c-ai.rz.hs-fulda.de Peter Klingebiel, HS Fulda, DVZ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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