BME Villamosmérnöki és Informatikai Kar Műszaki informatika szak |
Nappali tagozat
2004/2005. tanév, őszi félév |
A kis házi feladat beadása nem kötelező.
Egy fa n-edik síkjának a fa n-edik szintű csomópontjaiban tárolt értékek listáját nevezzük, ahol a listaelemek sorrendje a fa prefix bejárásának sorrendjét tükrözi. Nézzük például a következő fát:
E fa nulladik síkja a [7]
, az első síkja a
[3,2,5]
, a harmadik síkja az [1,2,5,1,2]
lista, az
összes többi síkja pedig az üres lista ([]
).
Adva van a következő típusdeklaráció:
datatype 'a fa = T of 'a * 'a fa listE típusdeklarációt felhasználva az ábrán látható fát például a következő kifejezéssel adhatjuk meg:
val t1 = T(7,[T(3,[]),T(2,[T(1,[]),T(2,[]),T(5,[])]),T(5,[T(1,[]),T(2,[])])])
Írjon olyan SML-függvényt sik
néven, amely egy int
fa
típusú fa n-edik síkját adja eredményül! A feladat
megoldásához segédfüggvényt definiálhat, ha ír hozzá fejkommentet.
A sik
függvény fejkommentje:
(* sik : int fa -> int -> int list sik t n = a t fa n-edik síkja *)
sik t1 0 = [7]; sik t1 1 = [3,2,5]; sik t1 2 = [1,2,5,1,2]; sik t1 3 = [];
khf-ml3.sml
néven kell beküldeni a
megoldást. A névben meg kell különböztetni a kis- és nagybetűket.
FONTOS! A program első nemüres sorába írja a datatype 'a fa = T
of 'a * 'a fa list
adattípus-deklarációt!
A programok készülhetnek MS Windows alatt, de Linux operációs rendszer alatt is működniük kell. A beadási határidő 2004. november 29. hétfő 24:00.
A vizsgaosztályzat megállapításakor a határidőre beadott, helyesen megoldott kis házi feladatért plusz 1 pont jár (a 100 pontból).