Algebraische Definition eines ADT

RedWing

Erfahrenes Mitglied
Hallo,
ich hoffe ich bin hier richtig und mir kann jemand helfen.
Das ganze hat zwar nix mit java zu tun aber mir schien das Forum ganz angebracht dafür.

Folgender Datentyp sei zu definieren:

queue // Liste

Mit folgenden Operationen:
Code:
create: --> queue /* Erzeugen */ 
enqeue: queue x element --> queue /* Hinten anfügen */
dequeue: queue --> queue /* 1. Element entfernen*/ 
front: queue --> element /* 1. Element liefern */ 
empty: queue -- > boolean /*Schlange leer?*/
Unser Prof hat nun folgende Eigenschaften fest gelegt:
Code:
Es existieren:
q: queue ; x: element

=> folgende Eigenschaften der Operationen:

empty(create()) = true 
empty ( enqueue(q,x)) = false 
front(create()) = undefiniert
front ( enqueue (q,x)) = if (empty (q)) then x else front (q) 
dequeue( create) = undefiniert
dequeue(enqueue(q,x))= if ( empty(q)) then q else enqueue (dequeue(q), x)

Da aber weder if noch then noch else als Operationen des ADT
festgelegt wurden, frag ich mich ob die Definition gültig ist?

Kann man das vielleicht auch ohne diese vom Himmel herkommenden
Operationen definieren?

Danke und Gruß

RedWing
 
Hi mal ne Frage von einem nicht Akademiker, was heißt eigetnlich ADT auf lang?

Takidoso

PS: ja typisch Profs große Definitionen Mahtematisch rüberbringen wollen aber die Basiselemente als unwichtig betrachten :)
 
1. ist das nicht Mathematisch sondern in Pseudocode.
siehe dazu:
http://de.wikipedia.org/wiki/Pseudocode

2. ist das gültig.


3. Sagt es nur was die einzelnen Operationen können sollen und wie diese auf verschiedene Bedingungen (if) reagieren sollen

.
ADT= Abstrakter Daten Typ kannst das ganze auch in engl. machen abstract data type
 
Ich habe nicht mathematisch sondern "algebraische Definition eines ADT" geschrieben.
Zur Definition siehe:
http://ivs.cs.uni-magdeburg.de/~dumke/EAD/Skript30.html

2. ist das gültig.

Dazu sind wir letztendlich auch gekommen. Siehe:
http://www.c-plusplus.de/forum/viewtopic-var-t-is-98482-and-highlight-is-.html
3. Sagt es nur was die einzelnen Operationen können sollen und wie diese auf verschiedene Bedingungen (if) reagieren sollen

Du meinst auf verschiedene Eingabewerte. Die Fallunterscheidungen
sind nur dafür gedacht die Eigenschaften der Operationen zu beschreiben,würd ich
jetzt mal sagen...

Gruß

RedWing
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück