Guest User

Untitled

a guest
Jun 7th, 2018
145
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Prolog 1.82 KB | None | 0 0
  1. zadania była dłuższa od rozwiązania)
  2. 1. dwie listy o długości n, napisać predykat przeplatający je
  3. przeplot(+A,+B,-C)
  4. A=[a1,a2,a3]
  5. B=[b1,b2,b3]
  6. C=[a1,b1,a2,b2,a3,b3]
  7. moja propozycja (nie sprawdzana)
  8. Kod:
  9.       splice([],[],[]).
  10.       splice([AH|AT],[BH|BT],[AH,BH|CT]):-
  11.       splice(AT,BT,CT).
  12.  
  13.  
  14.  
  15. 2. wszystkie możliwe podzbiory danej listy w kolejności.
  16. Kod:
  17. subss([a,b],X)
  18. X=[]
  19. X=[a]
  20. X=[b]
  21. X=[ab]
  22.  
  23.  
  24. 3. BST, napisać predykat sprawdzający obecność E na drzewie. T=t(E,Lt,Rt). Ma być optymalne (przeprowadzona minimalna liczba operacji potrzebna do znalezienia).
  25. bst_is(T,E).
  26. moja propozycja (nie sprawdzana)
  27. Kod:
  28.       in_bst(t(E,_,_),E):-!.
  29.       in_bst(t(Et,Lt,Rt),E):-
  30.       Et<E,!,
  31.       in_bst(Rt,E).
  32.       in_bst(t(Et,Lt,Rt),E):-
  33.       Et>E,!,
  34.       in_bst(Lt,E).
  35.  
  36.  
  37. 4. Sortowanie przed wstawianie.
  38. moja propozycja (nie sprawdzana)
  39. Kod:
  40.       wstaw([],E,[E]).
  41.       wstaw([H|TI],E,[H|TO]:-
  42.       E<H,!,
  43.       wstaw(TI,E,TO).
  44.       wstaw([H|T],E,[E,H|T]):-
  45.       E >= H, !.
  46.  
  47.       ins_srt([],[]).
  48.       ins_srt([H,T1],LstOut):-
  49.       ins_srt(T1,T2)
  50.       wstaw(T2,H,LstOut).
  51.  
  52.  
  53.  
  54. Dodatkowo:
  55. jakieś materiały
  56.  
  57. Kod:
  58. drzewo(tree(tree(tree(tree(tree(nil, 1, nil), 2, nil), 2, tree(tree(nil, 3, nil), 4, tree(tree(tree(nil, 5, nil), 5, nil), 5, nil))), 5, tree(nil, 6, tree(tree(nil, 7, nil), 7, tree(nil, 8, tree(nil, 23, nil))))), 63, nil)).
  59.  
  60.  
  61. Kod:
  62. preorder( nil ).
  63. preorder( tree( L, E, P ) ) :-
  64. write(E), write(', '),preorder(L), preorder(P).
  65.  
  66.  
  67. Kod:
  68. inorder( nil ).
  69. inorder( tree( L, E, P ) ) :-
  70. inorder(L), write(E), write(', '), inorder(P).
  71.  
  72.  
  73. Kod:
  74. postorder( nil ).
  75. postorder( tree( L, E, P ) ) :-
  76. postorder(L),postorder(P),write(E), write(', ').
  77.  
  78.  
  79. Kod:
  80. :- drzewo(X),
  81. preorder(X),
  82. nl,inorder(X),
  83. nl,postorder(X).
Add Comment
Please, Sign In to add comment