我想要定義一個簡單的二叉搜索樹。它存儲在像這樣的列表中:[Key,Left Tree,Right Tree]。我有我的邏輯問題。這是我自定義二叉搜索樹的邏輯問題
bstadd(K, [], [K,[],[]]).
bstadd(K, [X|_], [X, [], [K, [], []]]) :- K > X.
bstadd(K, [X, [], [K, [], []]], [X|_]) :- K < X.
這是我查詢
1 ?- bstadd(19, [],T1), bstadd(20,T1,T2), bstadd(21,T2,T3).
這是我走出
T1 = [19, [], []],
T2 = [19, [], [20, [], []]],
T3 = [19, [], [21, [], []]]
,這是我需要
[19, [], [20, [], [21, [], []]]]
任何幫助將是美好的。我已經把頭撞在牆上好幾天了。
使用具有固定num.of.elements的列表是不好的做法。你的樹會更好地表現爲遞歸't(K,L,R)' – CapelliC