Java에서 이진 트리를 구현해야합니다. 오른쪽 노드의 값은 부모 노드의 부모 및 부모를 입력으로 사용하고 function1()은 왼쪽 노드의 값 노드는 부모 노드를 입력으로 사용하는 function2()로 계산됩니다. (첫 번째 두 개의 자식 노드에 대해 부모 노드 값의 부모 및 부모는 미리 결정됩니다.) 노드 중 하나가 프로그램에서 찾고자하는 값을 가질 때까지 노드는 해당 함수의 반환 값으로 채워집니다. 함수가 어떤 지점에서 원하는 값을 생성한다면, 그 노드에 대한 경로, 즉 원하는 순서로 함수의 순서가 원하는 값을 생성해야합니다. 주어진 함수로 값을 얻지 못하면 "false"를 출력합니다.두 함수로 이진 트리 채우기
이 알고리즘을 구현하는 가장 좋은 방법을 알려주시겠습니까?
편집 : 이제 그 가정하자 : 1. 기능 1은 다음과 같습니다
int function1(p_node.value, p_node.p_node.value)
{ `return 5*p_node.value+6*p_node.p_node.value;}
2 : 기능 2는 다음과 같습니다 그런
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"
'function1()'과'function2()'의 정의는 무엇입니까? 만약 내가 그 값을 얻을 수 있는지 여부를 결정할 수 없는지 모르겠다. – johnchen902
그들은 값을 계산하여 노드에 저장하기 때문에 이러한 함수에 대해 알 필요가 없습니다. 그게 다야. 함수 반환 값이 요청 된 것이면 각 계산 후에 수동으로 확인합니다. – Ahmedov