ABSTRAKTE DATENTYPEN (ADT)

Fragen und Antworten, Beispiele

Moderator: herw

ABSTRAKTE DATENTYPEN (ADT)

Beitragvon herw » Sa 13. Sep 2014, 10:20

Bei komplexen core Strukturen sind manchmal abstrakte DatenTYPEN wie eine Liste, Stack, Ring oder gar ein Baum vorteilhaft.
Es gibt eine Implementation im Ensemble MONARK.
Mich würden einfache Beispiele interessieren, wie man in Core zum Beispiel eine Liste erstellt.
Das Zeigerprinzip ist mir klar, doch wie man es am einfachsten realisiert noch nicht.
Hat jemand Interesse, daran zu mit zu arbeiten?

Hier ist Literatur z.B.
verkettete Liste (wikipedia)
Baum (wikipedia)
http://www.u-helmich.de/inf/BlueJ/kurs1 ... liste.html

ciao herw
Benutzeravatar
herw
moderator
 
Beiträge: 3043
Registriert: Mo 13. Mär 2006, 19:28
Wohnort: Dortmund

Re: ABSTRAKTE DATENTYPEN (ADT)

Beitragvon ettette » Di 24. Feb 2015, 18:51

Hi herw,
langsam habe ich Blut gelckt.
Was willste denn machen?
Vielleicht lerne ich noch was dabei.
Gruß
Ette
ettette
user
 
Beiträge: 25
Registriert: Do 5. Nov 2009, 22:50

Re: ABSTRAKTE DATENTYPEN (ADT)

Beitragvon herw » Di 24. Feb 2015, 21:27

ettette hat geschrieben:Hi herw,
langsam habe ich Blut gelckt.
Was willste denn machen?
Vielleicht lerne ich noch was dabei.
Gruß
Ette
Nun wie der Zufall so will, habe ich mich gerade heute wieder mit dem Problem beschäftigt. Ich habe persönliche Erläuterungen von Max und steige so langsam durch. Ich möchte die aktuell gewählten Pitchwerte eines Akkords abrufen und zwar in der Reihenfolge, in der sie eingegeben wurden und dann für einen Arpeggiator abrufen.
Das Prinzip, wie die Zeiger verwaltet werden habe ich zu 90% verstanden. Es handelt sich um eine doppelt verkettete Liste; das ist mir bekannt von TurboPascal und damit kenne ich mich aus; ich muss nur noch wissen, wo der Kopf der Liste ist und dann die Zeiger entlang laufen.

ciao herw
Benutzeravatar
herw
moderator
 
Beiträge: 3043
Registriert: Mo 13. Mär 2006, 19:28
Wohnort: Dortmund

Re: ABSTRAKTE DATENTYPEN (ADT)

Beitragvon ettette » Di 24. Feb 2015, 21:33

Aber wie willst du die Verkettung realisieren?
Mit mehreren Arrays?
Eins für den Wert (Float) eins für den Zeiger nach vorne (int) und eins für den nach hinten(int)?
Liebe Grüße Ette
ettette
user
 
Beiträge: 25
Registriert: Do 5. Nov 2009, 22:50

Re: ABSTRAKTE DATENTYPEN (ADT)

Beitragvon herw » Mi 25. Feb 2015, 06:54

ettette hat geschrieben:Aber wie willst du die Verkettung realisieren?
Mit mehreren Arrays?
Eins für den Wert (Float) eins für den Zeiger nach vorne (int) und eins für den nach hinten(int)?
Liebe Grüße Ette
Die Verkettung ist einfach. Das geht genauso wie in allen Programmiersprachen: jedes Listenelement, den so genannten Knoten, besteht aus drei Komponenten, dem eigentlichen Wert und zwei Zeigern pre und post, die auf den Index des vorangegangenen und folgenden Listenelements verweisen.
Wenn ich also zum Beispiel die gehaltenen Noten registrieren möchte, dann sind das maximal 128 (von 0 bis 127) Werte. Also brauche ich ein Feld mit 3·128=384 Elementen und einen Zeiger auf das erste Feld. Das Array enthält also 385 Elemente.
Da ich einen Arpeggiator bauen möchte, werden alle Operationen durch den MIDI-Note/Gate-Event getaktet (Registrierung der gehaltenen Noten). Die Abfrage der Werte geschieht dann durch die Clock. Soweit habe ich das auch durchschaut. Wie gesagt, ich muss die Ausführungen von Max erst einmal selbst verstehen. Wenn du MONARK besitzt, dann kannst du die Realisierung im Makro „note list” wiederfinden.
liste.jpg
liste.jpg (37.94 KiB) 2366-mal betrachtet

Es gibt dort zwei Felder, das eine (ein Stack) verwaltet nur die freien Indizes, das andere ist die eigentliche verkettete Liste. Das ist natürlich der speziellen Anwendung in MONARK geschuldet und muss für meine Bedürfnisse angepasst werden.
Wenn du dir dieses Makro genauer ansiehst (Analyse in einem extra-Programm, in dem du die Felder von außen durch eine Iteration jeweils abfragen und in den ACEW übertragen kannst), dann steigst du nach und nach durch, was passiert. In dem Stadium bin ich gerade. Die Ausführungen von Max sind relativ umfangreich. Wenn ich alles beherrsche, werde ich mal darüber schreiben.
ciao herw

Links:
http://www.saar.de/~awa/data/ADT_Liste_Klasse11.pdf
http://www.u-helmich.de/inf/BlueJ/kurs1 ... ite14.html
http://dbs.uni-leipzig.de/skripte/ADS1/PDF2/kap3.pdf
Benutzeravatar
herw
moderator
 
Beiträge: 3043
Registriert: Mo 13. Mär 2006, 19:28
Wohnort: Dortmund


Zurück zu MODULE UND MAKROS (core)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron