Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- zadania była dłuższa od rozwiązania)
- 1. dwie listy o długości n, napisać predykat przeplatający je
- przeplot(+A,+B,-C)
- A=[a1,a2,a3]
- B=[b1,b2,b3]
- C=[a1,b1,a2,b2,a3,b3]
- moja propozycja (nie sprawdzana)
- Kod:
- splice([],[],[]).
- splice([AH|AT],[BH|BT],[AH,BH|CT]):-
- splice(AT,BT,CT).
- 2. wszystkie możliwe podzbiory danej listy w kolejności.
- Kod:
- subss([a,b],X)
- X=[]
- X=[a]
- X=[b]
- X=[ab]
- 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).
- bst_is(T,E).
- moja propozycja (nie sprawdzana)
- Kod:
- in_bst(t(E,_,_),E):-!.
- in_bst(t(Et,Lt,Rt),E):-
- Et<E,!,
- in_bst(Rt,E).
- in_bst(t(Et,Lt,Rt),E):-
- Et>E,!,
- in_bst(Lt,E).
- 4. Sortowanie przed wstawianie.
- moja propozycja (nie sprawdzana)
- Kod:
- wstaw([],E,[E]).
- wstaw([H|TI],E,[H|TO]:-
- E<H,!,
- wstaw(TI,E,TO).
- wstaw([H|T],E,[E,H|T]):-
- E >= H, !.
- ins_srt([],[]).
- ins_srt([H,T1],LstOut):-
- ins_srt(T1,T2)
- wstaw(T2,H,LstOut).
- Dodatkowo:
- jakieś materiały
- Kod:
- 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)).
- Kod:
- preorder( nil ).
- preorder( tree( L, E, P ) ) :-
- write(E), write(', '),preorder(L), preorder(P).
- Kod:
- inorder( nil ).
- inorder( tree( L, E, P ) ) :-
- inorder(L), write(E), write(', '), inorder(P).
- Kod:
- postorder( nil ).
- postorder( tree( L, E, P ) ) :-
- postorder(L),postorder(P),write(E), write(', ').
- Kod:
- :- drzewo(X),
- preorder(X),
- nl,inorder(X),
- nl,postorder(X).
Add Comment
Please, Sign In to add comment