Upload
chokla
View
212
Download
0
Embed Size (px)
DESCRIPTION
Ori
Citation preview
Predikatska logika PROLOG Auditorne vežbe 3
Računarska inteligencija
Binarna stabla
st(a, st(b, st(d, p, p), st(e, p, p)), st(c, st(f, p, p), p)).
Binarna stabla
b_stablo(p). b_stablo(st(X, L, D)):-b_stablo(L), b_stablo(D).
Provera da li je struktura binarno stablo
element(X, st(X, L, D)). element(X, st(S, L, D)):-element(X, L); element(X, D).
Traženje elementa binarnom stablu
Uređeno binarno stablo
Svi elementi u levom podstablu su manji od korena.Svi elementi u desnom podstablu su veći od korena.
12
8
115
17
2214
Uređeno binarno stablo
Traženje elementa u uređenom binarnom stablu
element(X, st(X, L, D)). element(X, st(G, L, D)):-X<G, element(X, L).element(X, st(G, L, D)):-X=>G, element(X, D).
dodaj(X, p, st(X, p, p)). dodaj(X, st(G, L, D), st(G, L1, D)):-X<G, dodaj(X, L, L1). dodaj(X, st(G, L, D), st(G, L, D1)):-X=>G, dodaj(X, D, D1).
Dodavanje elementa u uređeno binarno stablo
Uređeno binarno stabloBrisanje elementa iz uređenog binarnog stabla
brisi(X, st(X, p, D), D). brisi(X, st(X, L, D), st(Ym, L1, D)):-najveci(L, Ym, L1). brisi(X, st(Y, L, D), st(Y, L1, D)):-X<Y, brisi(X, L, L1). brisi(X, st(Y, L, D), st(Y, L, D1)):-X>Y, brisi(X, D, D1).
najveci(st(Ym, L, p), Ym, L). najveci(st(Y, L, D), Ym, st(Y, L, D1)):-najveci(D, Ym, D1).
12
8
115
17
2214
11
8
115
17
2214
Uređeno binarno stablo
Konverzija liste u uređeno binarno stablo
lista_stablo([], p). lista_stablo([G|R], S):-lista_stablo(R, S1), dodaj(G, S1, S).
stablo_lista(p, []). stablo_lista(st(G, L, D), Rez)):-stablo_lista(L, L1), stablo_lista(D, D1), pripoji(L1, [G|D1], Rez).
Konverzija stabla u listu
Primeri
sortiraj(L, SL):- lista_stablo(L, S), stablo_lista(S, Sl).
Sortiranje
fibonaci(0,1). fibonaci(1,1). fibonaci(N,F):- N2 is N-2, N1 is N-1, fibonaci(N1, F1), fibonaci(N2, F2), F is F1 + F2.
Fibonačijev niz