skuska 30. 1. 2008

rb at 2008-01-30 19:18:56

Takze dnes sme dostali taketo priklady:
1.) Prolog: Pridajte ku kazdemu vrcholu v n-arnom strome 2 prirodzene cisla. Prve bude cislo poradia vrcholu pri priechode preorder, druhe pri priechode postorder (zlava).
2.) Prolog: Hladovym algoritmom zostrojte v danom grafe nezavislu mnozinu vrcholov, ktora sa neda zvacsit pridanim vrcholu.
3.) Haskell: V binarnom strome niektore prvky porusuju podmienku usporiadania na binarny vyhladavaci strom. Vydajte zoznam vrcholov, ktore usporiadanie voci svojim predchodcom porusuju a pre kazdy taky vrchol i pocet predchodcov, voci ktorym ho porusuju.
4.) Pre typ:

data HTML a = ELM String [HTML a] | Txt a

napiste:
a) typy konstruktorov typu HTML
b) funkciu

mapHTML::(a->b)->HTML a->HTML b

, ktora prejde strukturu a zmeni hodnoty u Txt pomocou danej funkcie
5.) Popiste unifikacny algoritmus.

Velky priklad:
Prioritni ekvivalence
Je dan seznam pozadavku na dvojici prvku z nejake mnoziny. Kazdy pozadavek je bud rovnost nebo nerovnost a ma danou prioritu. Prvky, pro ktere je pozadovana rovnost, maji patrit do ruznych trid. Najdete tridy ekvivalence prvku tak, aby bylo od nejvyssi priority splneno co nejvic pozadavku, t.j. splneni pozadavku nizsi priority nesmi porusit pozadavky vyssi priority. V pripade konfliktu mezi rovnosti a nerovnosti (prvku z) trid se stejnou prioritou ma prednost rovnost. Vydejte vysledne tridy, pozadavky, ktere se podarilo splnit a nejvyssi prioritu, pri ktere nastal konflikt. Splnujte i pozadavky s nizsi prioritou, nez nastal konflikt, pokud je splnit lze.