Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- present(Key,tree(Key,_,_)).
- present(Key,tree(_,LeftSubTree,_)) :-
- present(Key,LeftSubTree).
- present(Key,tree(_,_,RightSubTree)) :-
- present(Key,RightSubTree).
- inserting(Key,null,tree(Key,null,null)).
- inserting(Key,tree(Root,LeftSubTree,RightSubTree),tree(Root,NewLeftSubTree,RightSubTree)) :-
- Key<Root,
- inserting(Key,LeftSubTree,NewLeftSubTree).
- inserting(Key,tree(Root,LeftSubTree,RightSubTree),tree(Root,LeftSubTree,NewRightSubTree)) :-
- Key>Root,
- inserting(Key,RightSubTree,NewRightSubTree).
- add(null,0).
- add(tree(X,T1,T2),S):-
- add(T1,S1),
- add(T2,S2),
- S is X+S1+S2.
- count_leaves(null,0).
- count_leaves(tree(_,null,null),1).
- count_leaves(tree(_, L, R), N):-
- count_leaves(L, NL),
- count_leaves(R, NR),
- N is NL + NR.
- compute(tree(S,null,null),Result):-
- Result is S.
- compute(tree(+,T1,T2),Result):-
- Result is T1 + T2.
- compute(tree(-,T1,T2),Result):-
- Result is T1 - T2.
- compute(tree(*,T1,T2),Result):-
- Result is T1*T2.
- compute(tree(/,T1,T2),Result):-
- Result is T1 / T2.
- present(Item,[Item|_]).
- present(Item,[_|Tail]) :-
- present(Item,Tail).
- concatenating([],List,List).
- concatenating([Head|Tail],List,[Head|ResultedTail]) :-
- concatenating(Tail,List,ResultedTail).
- predecessors(Item,EntireList,ListOfPredecessors):-
- append(ListOfPredecessors,[Item|_],EntireList).
- successors(Item,EntireList,ListOfSuccessors):-
- append(_,[Item|ListOfSuccessors],EntireList).
- inserting(item,list,result):-
- append(L1,L2,list),
- append(L1,[item|L2],result).
- deleting(item,list,result):-
- append(L1,[item|L2],list),
- append(L1,L2,result).
- deletingall(X, [X], []):-!.
- deletingall(X, [X|Xs], Y):-!, deletingall(X, Xs, Y).
- deletingall(X, [T|Xs], Y):-!, deletingall(X, Xs, Y2), append([T], Y2, Y).
- range(X, X, result):-!.
- range(X,Y,result):-
- X1 is X+1,
- append()...
- preorder(null,[]).
- preorder(tree(Root,L,R),List):-
- preorder(L,L1),
- preorder(R,L2),
- append([Root | L1], L2, List).
- inorder: append(L1, [Root | L2], List).
- postorder: append(L1, L2, aux)
- append(aux, Root, List).
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement