Advanced Programming in C
|
|
|
- Helga Gerstle
- vor 9 Jahren
- Abrufe
Transkript
1 Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013
2 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer Speicher 2 Structs - Eigene Datentypen aus Kombination anderer Datentypen 3 Listen - Verkettung mehrerer Elemente
3 Variablen vs. Pointer Statischer und dynamischer Speicher
4 Variablen Eigenschaften Haben einen bestimmten Datentyp (int, float,...). Speicherplatzbedarf der Variable ist bekannt. Müssen im Quellcode deklariert werden. Zu jeder Zeit bekannt wie viel und welcher Speicherplatz verwendet wird.
5 Pointer Eigenschaften Keine direkte Speicherzelle. Lediglich Adresse einer Speicherzelle. In der Speicherzelle können Daten stehen. Es können beliebig viele Pointer auf eine Speicherzelle zeigen. Es ist nicht bekannt, wie viel Speicherplatz zu einem Zeitpunkt belegt ist.
6 Beispiel: Addition mit Variablen und Pointern Listing 1: Addition mit Variablen #include <stdio.h> int main (void) { int var1 = 21; int var2 = 21; printf ( %d \n, var1 + var2); Listing 2: Addition mit Pointern #include <stdio.h> int main (void) { int var1 = 21; int var2 = &var1; printf ( %d \n, var1 + var2); } return 0; return 0; }
7 Zusammenfassung: Pointer Anlegen eines Pointers: double pointer ; Zuweisen der Daten in der Speicherzelle (&-Operator): double value = 42; pointer = &value; Zugriff auf Daten in der Speicherzelle ( -Operator): double value = pointer;
8 Beispiel: Statische und dynamische Arrays Listing 3: Statisches Array #include <stdio.h> int main (void) { int a [] = {1,90,20}; int sum = 0; for(int i = 0 ; i < 3 ; ++i) sum += a[i]; return 0; } Listing 4: Dynamsiches Array #include <stdio.h> #include <stdlib.h> int main (void) { int a; a = (int )malloc(3 sizeof(int)); a[0] = 1; a[1] = 90; a[2] = 20; int sum = 0; for(int i = 0 ; i < 3 ; ++i) sum += a[i]; free(a); return 0; }
9 Dokumentation: malloc und free Reine Dokumentation: Dokumentation mit Beispielen:
10 Zusammenfassung: Dynamisches Array Anlegen eines Pointers: double array ; Allozieren von Speicher: array = (double )malloc(n sizeof(double)); Zugriff auf Daten in den Speicherzellen: array[0]= 1.5; double value = array [0]; Freigeben von alloziertem Speicher: free ( array )
11 Was passiert, wenn der Aufruf von free () vergessen wird? Listing 5: Codeauszug int a = (int )malloc(3 sizeof(int)); //free(a); Listing 6: Analyse mit valgrind diehl@ossus $ valgrind./run ==11846== HEAP SUMMARY: ==11846== in use at exit: 12 bytes in 1 blocks ==11846== total heap usage: 1 allocs, 0 frees, 12 bytes allocated ==11846== ==11846== LEAK SUMMARY: ==11846== definitely lost: 12 bytes in 1 blocks
12 Structs Eigene Datentypen aus Kombination anderer Datentypen
13 Datentyp: struct Deklaration struct name {var1,..., varn}; Beispiel struct student {int fachsemester ; char name[25]}; Initialisierung struct name = {var1,..., varn}; Beispiel struct student = { 1, Karl Coder };
14 Beispiel #include <stdio.h> #include <math.h> Listing 7: Länge zwischen zwei Punkten int main (void) { struct point {double x ; double y; } p1 = {0.0,0.0}; struct point p2 = {0.0,1.5}; double length = sqrt(pow((p1.x p2.x),2.0) + pow(p1.y p2.y,2.0)); printf( Length = %f \n, length); return 0; }
15 Listen Verkettung mehrerer Elemente
16 Was sind Listen? Allgemein: Listen sind quasi unbegrenzte Arrays. Sie sind eine fundamentale Idee der Informatik. Die jeweils benötigten Operationen sind entscheidend für das Verhalten / die Semantik der Liste, z.b. LIFO = Last-In-First-Out: Stack / Keller FIFO = First-In-First-Out: Queue / Warteschlange sortiert...
17 Vor-/Nachteile von Listen Vorteile Anzahl der zu speichernden Elemente muss vorher nicht bekannt sein bzw. darf sogar schwanken. Zusammenhang der Elemente / Reihenfolge kann leicht modifiziert werden. Nachteile Zugriff auf ein bestimmtes Element relativ langsam. Arrays O(1) Listen O(n) Speicherbedarf = Anzahl der Elemente + Verwaltung
18 Grundstruktur/Datentyp (einfachverkettete Liste) Zunächst die konkrete Deklaration eines Listen-Elements: struct element { int value; // Wert des Elements struct element next; // Zeiger auf Nachfolger }; Jedes Element enthält einen Wert sowie einen Zeiger auf das jeweilige Nachfolger-Element. Das letzte Listenelement enthält den NULL-Pointer als Nachfolger-Zeiger. Die Liste wird über einen Zeiger auf das erste Element, den sog. Anker angesprochen: struct element anchor = NULL; // leere Liste
19 Operationen: leere Liste Eine Liste auf Leerheit überprüfen. int isempty (struct element l) { int empty = 0; if (l == NULL) empty = 1; return empty; } int test = isempty(anchor);
20 Listenoperationen und -Durchläufe Für manche Listenoperationen werden sog. Listendurchläufe benötigt. Listendurchläufe sind rekursiv (oft eleganter) und iterativ (oft leichter verständlich) möglich. In beiden Fällen ist der Listendurchlauf für den relativ langsamen Zugriff in der Größenordnung O(n) verantwortlich.
21 Operationen: einfügen Element hinten anhängen. void append (struct element l, int value) { struct element tmp = l; struct element new = (struct element ) malloc (sizeof (struct element)); new >value = value; // Wert setzen new >next = NULL; // neues letztes Listenelement // new ans Listenende anhaengen if (tmp == NULL) l = new; else { while (tmp >next!= NULL) tmp = tmp >next; tmp >next = new; } }
22 Operationen: einfügen (cont. 1) Hinweis: Setzt man Anker für das erste ( Head ) und das letzte Element ( Tail ), kann auch beim hinten Einfügen auf den Listendurchlauf verzichtet werden. Problem: Nach wie vor mehrfache Vorkommen von Item möglich!
23 Operationen: einfügen (cont. 2) Nach definiertem Vergleich einfügen. Vergleich mit Schlüssel. struct element { int key; // Schluessel double item; // Wert struct element next; // Nachfolger }; Hinweis: Ist Key eindeutig, dann kommt die Kombination aus Key und Item genau einmal vor. Problem: Schlüsselverwaltung nötig (Datenbank) und nach wie vor mehrfache Vorkommen von Item möglich!
24 Operationen: erstes bzw. letztes Element Rückgabe des ersten bzw. letzten Elements mit Head und Tail kein Listendurchlauf nötig. Varianten: Item zurückgeben. double elem Item(struct element l); Pointer auf element zurückgeben. struct element elem Pointer(struct element l);
25 Operationen: suchen Um ein Element zu suchen wird wieder ein Listendurchlauf benötigt. Varianten: Item ist enthalten / ist nicht enthalten zurückgeben. Item selbst zurückgeben. Pointer auf struct element zurückgeben. Hinweis: Führt man beim Einfügen zunächst eine Suche durch und fügt Item nur dann ein, wenn ist nicht enthalten zurückgegeben wird, dann kommt Item immer genau einmal vor. (Menge) Problem: Vergleich mit generischem Item nötig!
26 Operationen: suchen (cont.) Rekursiv suchen mit Rückgabe von ist enthalten / ist nicht enthalten. int contains Rek(struct element l, int i) { if (isempty(l)) return(1); // false else if (l >item == i) return(0); // true else return(contains Rek(l >next, i); }
27 Operationen: löschen Vorne/Hinten löschen kein Listendurchlauf nötig. Varianten: Ohne Rückgabe.. void delete (struct element l); Item zurückgeben. double delete (struct element l); Pointer auf struct element zurückgeben. struct element delete (struct element l); Nach definiertem Vergleich löschen suchen, d.h. Übergabe von Item und Listendurchlauf nötig. Problem: Ggf. löschen aller Vorkommen!
28 Weitere Listentypen doppeltverkettete Liste (doubly-linked list) struct node { int value; node forward; node backward; }; Doppeltverkettete zyklische Liste
29 Weitere Listentypen (2) Einfachverkettete Kammliste struct node { node2 value; node forward; }; Einfachverkettete Kammliste
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
Schwerpunkte. Verkettete Listen. Verkettete Listen: 7. Verkettete Strukturen: Listen. Überblick und Grundprinzip. Vergleich: Arrays verkettete Listen
Schwerpunkte 7. Verkettete Strukturen: Listen Java-Beispiele: IntList.java List.java Stack1.java Vergleich: Arrays verkettete Listen Listenarten Implementation: - Pascal (C, C++): über Datenstrukturen
C- Kurs 09 Dynamische Datenstrukturen
C- Kurs 09 Dynamische Datenstrukturen Dipl.- Inf. Jörn Hoffmann [email protected] leipzig.de Universität Leipzig InsAtut für InformaAk Technische InformaAk Flexible Datenstrukturen Institut für
Algorithmen und Datenstrukturen (für ET/IT)
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische
Probeklausur Name: (c)
Einführung in die Praktische Informatik 30.1.2013 Probeklausur Name: Teil I: Datentypen (20 Punkte) Lösen sie die Probleme, indem sie die korrekten Lösungen ankreuzen bzw. in die vorgesehenen Freiräume
5.3 Doppelt verkettete Listen
5.3 Doppelt verkettete Listen Einfach verkettete Listen unterstützen das Einfügen und Löschen am Anfang in konstanter Zeit; für das Einfügen und Löschen am Ende benötigen sie jedoch lineare Laufzeit Doppelt
Zeiger und dynamischer Speicher
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling [email protected] Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Zuletzt aktualisiert: 09.12.2013, 07:49 Uhr
Algorithmen und Datenstrukturen (für ET/IT) Wiederholung: Ziele der Vorlesung. Wintersemester 2012/13. Dr. Tobias Lasser
Algorithmen und Datenstrukturen (für ET/IT) Wintersemester 2012/13 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Wiederholung: Ziele der Vorlesung Wissen: Algorithmische
Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik
5. Datenstrukturen Motivation Datenstrukturen sind neben Algorithmen weitere wichtige Bausteine in der Informatik Eine Datenstruktur speichert gegebene Daten und stellt auf diesen bestimmte Operationen
Kurzeinführung in C99
Kurzeinführung in C99 Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Compiler und Editoren - Was wird benötigt um ein Programm zu erstellen 2
Praxis der Programmierung
Dynamische Datentypen Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Dynamische Datentypen 2 Dynamische Datentypen
Nachtrag: Vergleich der Implementierungen von Stack
Nachtrag: Vergleich der Implementierungen von Stack In der letzten Vorlesung hatten wir zwei Implementierung der Klasse Stack: eine Implementierung als Liste (Array): liststack eine Implementierung als
Einführung in die Programmierung zusammengesetzte Datentypen, dynamischer Speicher
Einführung in die Programmierung zusammengesetzte Datentypen, dynamischer Speicher Arvid Terzibaschian 1 Zusammengesetzte Datentypen 2 Wozu zusammengesetzte Datentypen? Anforderung: Sie sollen ein Kundenverzeichnis
13. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Sortierte Liste 40 40 Motivation: Stapel ( push, pop, top, empty ) Wir brauchen einen neuen
16. Dynamische Datenstrukturen
Datenstrukturen 6. Dynamische Datenstrukturen Eine Datenstruktur organisiert Daten so in einem Computer, dass man sie effizient nutzen kann. Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange
6. Verkettete Strukturen: Listen
6. Verkettete Strukturen: Listen 5 K. Bothe, Inst. f ür Inf., HU Berlin, PI, WS 004/05, III.6 Verkettete Strukturen: Listen 53 Verkettete Listen : Aufgabe Vergleich: Arrays - verkettete Listen Listenarten
Grundlagen der Informatik 12. Strukturen
12. Strukturen Strukturen und deren Komponenten Strukturen im Projekt Dynamisch erstellte Strukturen Strukturen und Operatoren Strukturen und Funktionen Einfach verkettete Liste Grundlagen der Informatik
Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II a[0] a[1] a[2] a[3] a[n 1]
Universität München, Hans-Peter Kriegel und Thomas Seidl Informatik II -108 Kapitel 5: Arrays Einführung Ein Array ist eine Reihung gleichartiger Objekte. a: a[0] a[1] a[2] a[3] a[n 1] Bezeichner a steht
Übung Algorithmen und Datenstrukturen
Übung Algorithmen und Datenstrukturen Sommersemester 2017 Marc Bux, Humboldt-Universität zu Berlin Agenda 1. (Sortierte) Listen 2. Stacks & Queues 3. Datenstrukturen 4. Rekursion und vollständige Induktion
Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen. Sebastian Küpper
Einführung in die Objektorientierte Programmierung Vorlesung 18: Lineare Datenstrukturen Sebastian Küpper Unzulänglichkeit von Feldern Wenn ein Unternehmen alle Rechnungen eines Jahres verwalten möchte,
12. Dynamische Datenstrukturen
Motivation: Stapel. Dynamische Datenstrukturen Verkettete Listen, Abstrakte Datentypen Stapel, Warteschlange, Implementationsvarianten der verketteten Liste 0 04 Motivation: Stapel ( push, pop, top, empty
Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin
Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm
Informatik II Übung 5
Informatik II Übung 5 Gruppe 2 Carina Fuss [email protected] 28.3.2018 Carina Fuss 28.3.2018 1 Übung 5 Administratives/Tipps zu Eclipse Nachbesprechung Übung 4 kurze Demo zu Stacks Java Pakete Call
Übersicht. Speichertypen. Speicherverwaltung und -nutzung. Programmieren in C
Übersicht Speichertypen Speicherverwaltung und -nutzung Speichertypen Beim Laden eines Programms in den Speicher (Programmausführung) kommen 3 verschiedene Speicherbereiche zum Einsatz: Text Segment (Code
einlesen n > 0? Ausgabe Negative Zahl
1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen
Variablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes
Variablen Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes v ist Stück im Speicher, der 4 Bytes lang ist Speicherzugriff? Über Adressen!
Lösungshinweise/-vorschläge zum Übungsblatt 12: Software-Entwicklung 1 (WS 2017/18)
Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 12: Software-Entwicklung 1 (WS 2017/18)
Stacks, Queues & Bags. Datenstrukturen. Pushdown/Popup Stack. Ferd van Odenhoven. 19. September 2012
, Queues & Ferd van Odenhoven Fontys Hogeschool voor Techniek en Logistiek Venlo Software Engineering 19. September 2012 ODE/FHTBM, Queues & 19. September 2012 1/42 Datenstrukturen Elementare Datenstrukturen
Dynamische Speicherverwaltung
Dynamische Speicherverwaltung 1/ 23 Dynamische Speicherverwaltung Tim Dobert 17.05.2013 Dynamische Speicherverwaltung 2/ 23 Gliederung 1 Allgemeines zur Speichernutzung 2 Ziele und Nutzen 3 Anwendung in
Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()
Übungspaket 29 Dynamische Speicherverwaltung malloc() und free() Übungsziele Skript In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten
Fallstudie: Online-Statistik
Fallstudie: Online-Statistik Ziel: Klasse / Objekt, welches Daten konsumiert und zu jeder Zeit Statistiken, z.b. Mittelwert, Varianz, Median (etc.) ausgeben kann Statistics s = new Statistics(maxSize);...
Teil 8: Dynamische Speicherverwaltung. Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden
Teil 8: Dynamische Speicherverwaltung Prof. Dr. Herbert Fischer Fachhochschule Deggendorf Prof. Dr. Manfred Beham Fachhochschule Amberg-Weiden Inhaltsverzeichnis 8 Dynamische Speicherverwaltung... 3 8.1
Vorlesung Programmieren
Vorlesung Programmieren Speicherverwaltung und Parameterübergabe Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Gültigkeitsbereich von
3. Übungsblatt zu Algorithmen I im SoSe 2017
Karlsruher Institut für Technologie Prof. Dr. Jörn Müller-Quade Institut für Theoretische Informatik Björn Kaidel, Sebastian Schlag, Sascha Witt 3. Übungsblatt zu Algorithmen I im SoSe 2017 http://crypto.iti.kit.edu/index.php?id=799
Nachname: Vorname: Matr.-Nr.: Punkte: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende Struktogramm zur Berechnung von sin(x) mit Hilfe einer Reihe.
Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe: ( / 25 Pkt.) Gegeben ist das folgende
INE1 Speicherverwaltung und zweidimensionale Arrays. Speicherorganisation Dynamischer Speicher in C Zweidimensionale Arrays
INE1 Speicherverwaltung und zweidimensionale Arrays Speicherorganisation Dynamischer Speicher in C Zweidimensionale Arrays 1 Speicherorganisation in C 2 von 48 Speicherorganisation Anlegen eines Arrays:
Counting - Sort [ [ ] [ [ ] 1. SS 2008 Datenstrukturen und Algorithmen Sortieren in linearer Zeit
Counting-Sort Counting - Sort ( A,B,k ). for i to k. do C[ i]. for j to length[ A]. do C[ A[ j ] C[ A[ j ] +. > C[ i] enthält Anzahl der Elemente in 6. for i to k. do C[ i] C[ i] + C[ i ]. > C[ i] enthält
Programmieren in C. Rekursive Strukturen. Prof. Dr. Nikolaus Wulff
Programmieren in C Rekursive Strukturen Prof. Dr. Nikolaus Wulff Rekursive Strukturen Häufig müssen effizient Mengen von Daten oder Objekten im Speicher verwaltet werden. Meist werden für diese Mengen
Data Structures. Christian Schumacher, Info1 D-MAVT Linked Lists Queues Stacks Exercise
Data Structures Christian Schumacher, [email protected] Info1 D-MAVT 2013 Linked Lists Queues Stacks Exercise Slides: http://graphics.ethz.ch/~chschuma/info1_13/ Motivation Want to represent lists of
F Zeiger, Felder und Strukturen in C
F Zeiger, Felder und Strukturen in C F Zeiger, Felder und Strukturen in C F.1 Zeiger(-Variablen) 1 Einordnung Konstante: Bezeichnung für einen Wert a 0110 0001 Variable: Bezeichnung eines Datenobjekts
4.2 Programmiersprache C
4.2.1. Elementare Datentypen (signed) int, unsigned int, (signed) short (int), unsigned short (int), (signed) long (int), unsigned long (int) Elementare Datentypen für ganze Zahlen mit oder ohne Vorzeichen.
Dynamische Speicherverwaltung
Dynamische Speicherverwaltung Tim Dobert 17.05.2013 Inhaltsverzeichnis 1 Allgemeines zur Speichernutzung 2 2 Ziel und Nutzen 2 3 Anwendung in C 2 3.1 malloc............................... 3 3.2 calloc...............................
Grundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
Spezielle Datenstrukturen
Spezielle Datenstrukturen Stapel (Stack) Beschreibung der Datenstruktur Stapel Ein Stapel (engl. Stack), auch Stapelspeicher oder Keller bzw. Kellerspeicher genannt, ist eine Datenstruktur, in der Daten
ESP Tutorium. Studienassistent: Ewald Moitzi. Gruppe 1
ESP Tutorium Studienassistent: Ewald Moitzi E-Mail: [email protected] Gruppe 1 Finde den Fehler 1 char text[5]; strcpy (text, "hallo"); printf ("%s\n",text); Finde den Fehler 1 char text[5];
Programmieren in C. Speicher anfordern, Unions und Bitfelder. Prof. Dr. Nikolaus Wulff
Programmieren in C Speicher anfordern, Unions und Bitfelder Prof. Dr. Nikolaus Wulff Vergleich: Felder und Strukturen Felder müssen Elemente vom selben Typ enthalten. Strukturen können Elemente unterschiedlichen
Grundgebiete der Informatik 2 Lösungsvorschlag zur Probeklausur
Lehrstuhl für Informatik 3 Prof. Dr.-Ing. M. Nagl RWTH Aachen Grundgebiete der Informatik 2 Lösungsvorschlag zur Probeklausur Prof. Dr.-Ing. M. Nagl Simon Becker Ulrike Ranger René Wörzberger Aufgabe 1
C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Zeiger, Referenzen und Strukturen Leibniz Universität IT Services Anja Aue Zeiger (Pointer) Verweis auf eine Speicherstelle. Speicherung einer Speicheradresse.
Grundlagen der Informatik 11. Zeiger
11. Zeiger Motivation Zeiger und Adressen Zeiger und Funktionen Zeiger und Arrays Dynamische Objekte Grundlagen der Informatik (Alex Rempel) 1 Motivation Dynamische Speicherverwaltung Oft müssen große
Informatik II Prüfungsvorbereitungskurs
Informatik II Prüfungsvorbereitungskurs Tag 4, 23.6.2016 Giuseppe Accaputo [email protected] 1 Programm für heute Repetition Datenstrukturen Unter anderem Fragen von gestern Point-in-Polygon Algorithmus Shortest
ALP II Dynamische Datenmengen Datenabstraktion
ALP II Dynamische Datenmengen Datenabstraktion O1 O2 O3 O4 SS 2012 Prof Dr Margarita Esponda M Esponda-Argüero 1 Dynamische Datenmengen Dynamische Datenmengen können durch verschiedene Datenstrukturen
Informatik - Übungsstunde
Informatik - Übungsstunde Jonas Lauener ([email protected]) ETH Zürich Woche 12-23.05.2018 Lernziele Klassen Dynamic Memory Jonas Lauener (ETH Zürich) Informatik - Übung Woche 12 2 / 20 Structs
Dynamischer Speicher
Dynamischer Speicher C-Kurs 2012, 3. Vorlesung Tino Kutschbach [email protected] http://wiki.freitagsrunde.org 13. September 2012 This work is licensed under the Creative Commons Attribution-ShareAlike
Programmieren I. Kapitel 13. Listen
Programmieren I Kapitel 13. Listen Kapitel 13: Listen Ziel: eigene Datenstrukturen erstellen können und eine wichtige vordefinierte Datenstruktur( familie) kennenlernen zusammengehörige Elemente zusammenfassen
Algorithmen & Datenstrukturen
Algorithmen & Datenstrukturen 1. Grundlagen 1.1 Elementare Datenstrukturen 1 Datenstrukturen Gleichartige Daten (ob vom elementaren Datentyp oder strukturiert) werden meist bei abschätzbarer Datenmenge
Vorlesung Datenstrukturen
Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum
Programmierung und Angewandte Mathematik
Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden
1 Abstrakte Datentypen
1 Abstrakte Datentypen Spezifiziere nur die Operationen! Verberge Details der Datenstruktur; der Implementierung der Operationen. == Information Hiding 1 Sinn: Verhindern illegaler Zugriffe auf die Datenstruktur;
Verkettete Datenstrukturen: Listen
Verkettete Datenstrukturen: Listen 2 Listen Formal: Liste = endliche Folge von Elementen [a 1, a 2,..., a n ]. Spezialfall: leere Liste [ ]. Länge einer Liste = Anzahl der Elemente (bei leerer Liste: 0).
Lösungshinweise/-vorschläge zum Übungsblatt 13: Software-Entwicklung 1 (WS 2017/18)
Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 13: Software-Entwicklung 1 (WS 2017/18)
Dynamische Speicherverwaltung
Dynamische Speicherverwaltung INE2 M. Thaler, [email protected] Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Bisjetzt Beispiel Ranglistenprogramm für Sportveranstaltungen Besser - genaue Anzahl Teilnehmer
Konkatenation zweier Listen mit concat
Ein Datenmodell für Listen Konkatenation zweier Listen mit concat Was ist an der Konkatenation etwas unschön? Man muss die vordere Liste einmal durchgehen, um den letzten Nachfolger (urspr. null zu erhalten,
Dynamisches Speichermanagement
Dynamisches Speichermanagement Proseminar C-Programmierung - Grundlagen und Konzepte Timo Minartz [email protected] Wissenschaftliches Rechnen Fachbereich Informatik Universität Hamburg
11. Elementare Datenstrukturen
11. Elementare Datenstrukturen Definition 11.1: Eine dynamische Menge ist gegeben durch eine oder mehrer Mengen von Objekten sowie Operationen auf diesen Mengen und den Objekten der Mengen. Dynamische
Einfügen immer nur am Kopf der Liste Löschen auch nur an einem Ende (2 Möglichkeiten!)
Stack und Queue Grundlegender Datentyp Menge von Operationen (add, remove, test if empty) auf generischen Daten Ähnlich wie Listen, aber mit zusätzlichen Einschränkungen / Vereinfachungen: Einfügen immer
