Java で二分木を実装する必要があります。右のノードの値は、親ノードの親と親を入力として受け取る function1() で計算され、左のノードの値は、親ノードを入力として。(最初の 2 つの子ノードについては、親と親ノードの値の親が事前に決定されます) ノードの 1 つがプログラムが探している値を持つまで、ノードはそれぞれの関数の戻り値で満たされます。関数がある時点で目的の値を生成する場合、そのノードへのパス、つまり関数が目的の値を生成した順序を出力する必要があります。指定された関数で値を取得できない場合は、「false」を出力します。
このアルゴリズムを実装する最良の方法を教えてください。
編集:次のように仮定しましょう:1. function1は:
int function1(p_node.value, p_node.p_node.value)
{ `return 5*p_node.value+6*p_node.p_node.value;}
2: function2 は:
int function2(p_node.value){
return 5*p_node;}
それで、
node.right_node.value=function1(node.p_node.value, node.p_node.pnode.value)
if(node.right_node.value==desired_output) "print path_to_the_node"
node.left_node.value=function2(node.p_node.value);
if(node.left_node.value==desired_output) "print path_to_the_node"