간단한 이진 검색 트리를 정의하려고합니다. 그것은 [Key, Left Tree, Right Tree]와 같은 목록에 저장됩니다. 내 논리에 문제가있어. 이것은 내가이 나는 이것이 내가논리 사용자 지정 이진 검색 트리 문제
T1 = [19, [], []],
T2 = [19, [], [20, [], []]],
T3 = [19, [], [21, [], []]]
나갈 것입니다
1 ?- bstadd(19, [],T1), bstadd(20,T1,T2), bstadd(21,T2,T3).
쿼리 무엇
bstadd(K, [], [K,[],[]]).
bstadd(K, [X|_], [X, [], [K, [], []]]) :- K > X.
bstadd(K, [X, [], [K, [], []]], [X|_]) :- K < X.
이 무엇이며 이것이 내가해야 할 것입니다
[19, [], [20, [], [21, [], []]]]
어떤 도움이라도 훌륭합니다. 나는 며칠 동안 내 머리를 벽에 치고 있었다.
고정 num.of.elements가있는 목록을 사용하는 것은 좋지 않습니다. 당신의 트리는 반복적 인't (K, L, R)'에 의해 더 잘 표현 될 것입니다. – CapelliC