kategória | ||||||||||
|
||||||||||
|
||
Absztrakt adatszerkezetek definiálása. Halmaz, zsák, verem, sor mint absztrakt adatszerkezet szintaktikája, szemantikája.
Definíció: Absztrakt elemi adat: Olyan adategység, mellyel a programozás adott szintjén végezhetők műveletek, de annak részeivel nem.
Definíció: Elemi adattípus (objektum): egy (A,M 646h76g ) kettős, ahol A az adattípusba tartozó absztrakt adatok nem üres halmaza, M pedig az m: AxAx....xA A alakú műveletek véges halmaza.
Példa
Egész típus absztrakciója:
A:= ( egész számok )
M:=
Szintaktika: + : AxA A
- : AxA A
: A A
Boolean típus:
A:= M:=
Szintaktika: Ù : AxA A
: AxA A
: A A
Definíció: Összetett adattípus absztrakciója egy (V,F) kettős, ahol V=, m ³ 2 és
V1 az összetett adatok (vagy adatszerkezetek) nem üres halmaza,
V2 az összetett adatokat alkotó elemi adatok nem üres halmaza
V3... Vm segédhalmazok
F a következő fi műveletek véges halmaza:
fi : Vi1 x Vi2 x ... x Vik Vin (k³
és az fi műveletek között az
fj : Vj1 x Vj2 x ... x Vjm V1 (m³
alakú műveleteknek egy olyan részhalmaza, melyek egymás utáni alkalmazásával a V1 halmaz eleme előállítható.
Adatszerkezetek szemantikája
Definíció: Szemantika: a műveletek jelentését adja meg.
Megadás:
Matematikában: axiómák segítségével
Itt: Megadjuk a szelekciós műveleteknek a konstrukciós műveletekkel előállított adatszerkezetekre gyakorolt hatását.
Halmaz: h H e1, e2, e3 HE
delete ( empty,e ) = empty
delete ( insert(h, e1), e1 ) =
ha e1= e2 , akkor delete(h, e1)
különben insert(delete(h, e2), e1)
e:= e1= e2
ha e h , akkor insert(h,e)=h
ha e Ï h , akkor delete(h,e)=h
másrészt delete(insert(h,e),e)=h
delete(insert(h,e),e)=delete(h,e)
has(empty,e)=¯
has(insert(h, e1), e2)=
ha e1= e2 , akkor
különben: has(h, e2)
Zsák:
bdelete(bempty,e)=bempty
bdelete(binsert(b, e1), e2)=
ha e1= e2 , akkor b
különben: binsert(bdelete(b, e2), e1)
bhas(bempty,e)=¯
bhas(binsert(b, e1), e2)=
ha e1= e2 , akkor
különben: bhas (b, e2)
Verem: v verem e elem
pop(push(v,e))=v e
top(push(v,e))=e
pop(create)=create v push (v,e)
top(create=error
Sor: s sor e elem
remove(add(s,e))= add(s,e)
ha s=new, akkor new
különben: add(remove(s),e) e
s
remove(s)
front(add(s,e))=
ha s=new, akkor e
kül önben: front(s) add(s,e)
e s
remove(new)=new
front(new)=error
Találat: 2222