Abstrakte Datentypen(ADS) == Dynamische Datentypen? Verständnisfragen zu ANSI C
-
Hallo,
ich bereite mich gerade auf eine Klausur in C vor. Ich habe noch 6 Wochen bis zur Klausur!Bei der Durcharbeitung haben sich ein paar Fragen aufgetan, die vom Namen her nicht einordnen kann!
Z.B. ist von Abstrakten Datentypen(ADS) die Rede! Bisher habe ich max. mit struct gearbeitet und diese per Zeiger verkettet. Ich habe zum Teil sehr komplizierte Beschreibung von Abstrakten Datentypen insbesondere bei C++ und Java gefunden. Auf einer HP stand, dass sie nach aussen nicht sichtbar sind und per Zeiger-Adressiert werden. Was wiederum auf meine verketteten Listen zutreffen würde.
Bei C von A bis Z habe ich ein Kapitel zu den Dynamischen Datentypen gefunden, darin werden Listen, Stacks und Queues beschrieben.
1. Ist meine Annahme richtig, dass diese gleichzusetzen mit ADS sind?
Andere Themen sind noch Erstellung von Hash-Tabel zur Speicherung/Idizierung großer Datenmengen und binäre Bäume.
Hat einer eventuell noch Links zu Tutorien oder andere Sites? Bei C von A bis Z habe ich was dazu gefunden, alelrdings möchte ich mich noch weiter belesen.
Es geht mir nicht darum, dass mir alles vorgekaut wird! Ich bin durchaus bereit was zu machen, habe auch noch 6 Wochen Zeit aber da ich erst kurzfristig von der Prüfung erfahren habe, bin ich momentan noch ein wenig "kopflos"!
-> Meine Strategie wird gerade erst ausgearbeitet!
Vielen Dank und Grüße
René
-
Ich hab noch nie was von abstrakten Datentypen in C gehört. Ganz besonders stört mich der Plural. Aus dem Bauch heraus würde ich aber auf einen void-Zeiger schließen. Der kann auf alles zeigen und man weiß nicht, was sich dahinter verbirgt.
-
Du hast recht, er schreibt im Singular!
Frage 1: Was versteht man unter einem Abstrakten Datentyp?
Frage 2: Was ist ein Interator-interface und warum wird es benötigt, im Zusammenhang mit Listen-Datenstruktur?Zu 2. bin ich auf die Idee gekommen, dass er einfach/mehrfach verkettete Listen meint und Iterator-Interface == Zeiger der auf das nächste Element zeigt bzw. das vorherige!
-
Abstrakten Datentyp (ADT)
Datentypen, ähnliche wie Class/Struct Kriterien von Abstaktion und Kapselung erfüllen. Der Begriff wurde in den 70ziger geprägt und wurde dann Erweitert für die OOP.Dynamischen Datentyp (DD)
Wurde ich selbst nicht verwenden, damit ist gemeint, dass deine Instanzen/Objekte im Heap liegen.Alles andere von dir benannt sind Datenstrukture, die man mit Konzepte ADT/DD beschreibt/realisiert.
-
Wenn du mit "Interator-interface" Iterator-Interface meinst, bist du dir auch sicher, dass du dann nicht ANSI C sondern C++ meinst?
-
Datentypen, ähnliche wie Class/Struct Kriterien von Abstaktion und Kapselung erfüllen. Der Begriff wurde in den 70ziger geprägt und wurde dann Erweitert für die OOP.
Wow, du erklaerst A mit B ohne B zu erklaeren ... Abstraktion (im Sinne von class/struct) oder Kapselung hat erstmal nichts damit zu tun. Klar sind das mehr oder minder Konsequenzen, aber tragen nicht zur Definition bei.
Abstrakter Datentyp ist allein durch seine Operationen darauf definiert. Was sich dahinter als Struktur verbirgt, ist unsichtbar. In C wird er meist durch einen void* oder HANDLE realisiert. Von http://de.wikipedia.org/wiki/Abstrakter_Datentyp ist das Beispiel Mathematisch-axiomatische und -algebraische Methode ganz brauchbar.
-
-.-