Advertisement
mvujas

Zadaci 25/04/2017

Apr 28th, 2017
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 1.62 KB | None | 0 0
  1. initStablo(nil).
  2.  
  3. insert(E, nil, s(nil, E, nil)):- !.
  4. insert(E, s(L, D, R), s(L1, D, R)):-
  5.     E < D,
  6.     insert(E, L, L1),
  7.     !.
  8. insert(E, s(L, D, R), s(L, D, R1)):-
  9.     E >= D,
  10.     insert(E, R, R1),
  11.     !.
  12.  
  13. listToTree([], nil).
  14. listToTree([ G | R ], S):-
  15.     listToTree(R, S1),
  16.     insert(G, S1, S).
  17.    
  18. brCvorova(nil, 0).
  19. brCvorova(s(L, _, R), N):-
  20.     brCvorova(L, N1),
  21.     brCvorova(R, N2),
  22.     N is N1 + N2 + 1.
  23.  
  24. ispisStabla(nil):- !.
  25. ispisStabla(s(L, E, R)):-
  26.     ispisStabla(L),
  27.     write(E),
  28.     nl,
  29.     ispisStabla(R),
  30.     !.
  31.  
  32. % trazi listu koja ide najvise u dubinu
  33. najduzi(nil, [], 0):- !.
  34. najduzi(s(L, N, R), Lista, Duzina):-
  35.     najduzi(L, Lista1, Duzina1),
  36.     najduzi(R, _, Duzina2),
  37.     Duzina1 > Duzina2,
  38.     Duzina is Duzina1 + 1,
  39.     Lista = [N | Lista1],
  40.     !.
  41. najduzi(s(L, N, R), Lista, Duzina):-
  42.     najduzi(L, _, _),
  43.     najduzi(R, Lista2, Duzina2),
  44.     Duzina is Duzina2 + 1,
  45.     Lista = [N | Lista2].
  46.  
  47. concatLists(L1, [], L1):- !.
  48. concatLists(L1, [G | O], [G | R]):-
  49.     concatLists(L1, O, R).
  50.  
  51. concatMatrix([], M, M):- !.
  52. concatMatrix(M, [], M):- !.
  53. concatMatrix([G1 | O1], [G2 | O2], [G | O]):-
  54.     concatLists(G1, G2, G),
  55.     concatMatrix(O1, O2, O).
  56.  
  57.  
  58. % trazi najsiri nivo u stablu
  59. maxWidth(S, List, L):-
  60.     najsiri(S, Matrix),
  61.     longest(Matrix, List, L).
  62.  
  63. najsiri(nil, []):- !.
  64. najsiri(s(L, N, R), [[N] | M]):-
  65.     najsiri(L, M1),
  66.     najsiri(R, M2),
  67.     concatMatrix(M1, M2, M).
  68.    
  69. longest([], [], 0):- !.
  70. longest([ G | O ], List, L1):-
  71.     longest(O, List, L1),
  72.     length(G, L2),
  73.     L1 > L2,
  74.     !.
  75. longest([ G | _ ], G, L):-
  76.     length(G, L).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement