/* Napisati Prolog predikat koji za datu listu izdvaja neozna?ene brojeve iz te liste, ofomljuje i na izlazu prikazuje pregledno ispisano ure?eno drvo u kom svaki ?vor (?vor sadrži pro?itani neozna?eni broj i broj njegovih pojava) ima maksimalno tri potomka – potomak x ?vora y treba da se na?e u levom podrvetu ako je 03y. Izvršenjem predikata treba da se, po prikazu drveta, na izlazu prikažu i svi neozna?eni brojevi iz liste i to sortirani u rastu?i poredak ako je argument predikata koji sledi i iza liste unifikabilan sa atomom rast, a sortirani u opadaju?i poredak ako se taj argument može unificirati sa atomom opad. Pri rešavanju zadatka se za smeštaj neozna?enih brojeva iz liste isklju?ivo treba koristiti drvoidna struktura. */ /*Ispituje da li je broj neoznacen double.*/ neoznacen(N):- (double(N);integer(N);float(N)), N >= 0. izdvojiizliste([],[]):-!. izdvojiizliste([H|T],[H|G]):- neoznacen(H), izdvojiizliste(T,G),!. izdvojiizliste([H|T],R):- izdvojiizliste(T,R). /*cvor(X,Y).*/ razliciti([],[]):-!. razliciti([H|T],[cvor(H,1)|R]):- not(clan2(H,T)), razliciti(T,R),!. razliciti([H|T],[cvor(H,B1)|R]):- prebroj(H,T,B), B1 is B+1, izbacisve(H,T,T1), razliciti(T1,R). clan2(H,[H|T]):-!. clan2(X,[H|T]):- clan2(X,T). prebroj(_,[],0):-!. prebroj(H,[H|T],B):- prebroj(H,T,B1), B is B1+1,!. prebroj(X,[H|T],B):- prebroj(X,T,B). izbacisve(_,[],[]):-!. izbacisve(H,[H|T],R):- izbacisve(H,T,R),!. izbacisve(X,[H|T],[H|R]):- izbacisve(X,T,R). razdvojilistu([],_,[],[],[]):-!. razdvojilistu([H|T],X,[H|R1],R2,R3):- arg(1,H,V), arg(1,X,VX), V=