私は、ツリーを整数のリストに変換する関数に取り組んでいます。私の問題は、1つまたは2つの整数だけを追加する必要があるときに、リストに追加できることです。しかし、私はこれを取得せずに3つの整数を追加することができないように見えます。1-2-3ツリーをリストに展開する方法は?
[[2], 3, 4]
、私は[2, 3, 4]
を取得する必要があります。
私は、問題はこの文からTEMP1、TEMP2とTEMP3は私が追加したいの整数である
append([Temp1 | Temp2] , Temp3, L)
ステムことを知っています。 Lはこれまでのツリーからのすべての整数を含むメインリストです。
私は2つの追記文を持つ試みたが、その代わりに[2, 3, 4]
のfalse
ブール値を返します。私は[ | ]
の周りを移動しようとしましたが、私は彼らが違いを生み出したと十分に知っているとは思いません。
append/3ページも2つのリストを1つに連結するだけです。どのような助けが大いに感謝されるでしょう:)
編集:私のコードは以下のとおりです、私は私のテストの例を追加しました。
chopTree(leaf(_), []).
chopTree(node1(Leaf, Node), L) :-
chopTree(Node, Temp),
append([], [Leaf | Temp], L).
chopTree(node2(Leaf, Node1, Node2), L) :-
chopTree(Node1, Temp1),
chopTree(Node2, Temp2),
append(Temp1, [Leaf | Temp2], L).
chopTree(node3(_, Node1, Node2, Node3), L) :-
chopTree(Node1, Temp1),
chopTree(Node2, Temp2),
chopTree(Node3, Temp3),
append([Temp1 | Temp2] , Temp3, L).
query(E) :-
chopTree(node3(1,
node1(2, leaf(1)),
node2(3, leaf(1), leaf(1)),
node1(4, leaf(1))),
E).
あなたのコードは...ですか?述部定義と照会の両方を含める必要があります。 –
申し訳ありませんが、もっと一般的な質問だと思っていました。私が使用したクエリと一緒にコードを追加しました。 –
単に 'L = [Temp1、Temp2、Temp3]'と書くのはなぜですか?何か不足していますか? –