하위 노드의 상위 노드를 출력하는 순회 기능을 작성하는 데 어려움을 겪고 있습니다.트래 버블 B 트리 구조 알고리즘
$nodes = array(
array('f','b'),
array('f','g'),
array('b','a'),
array('b','d'),
array('g','i'),
array('d','c'),
array('d','e'),
array('i','h')
);
나는 출력에 포함 된 results
배열을 시도하고있다 :
예제 B- 트리 여기
한 번 봐 내가 사용하고 샘플 데이터 세트입니다 부모 연결을 포함하는 모든 자식 노드 배열.
예제 출력 :
- 노드 (D)의 부모이다 (D, B, F)
- 노드 (H '의 부모 (B, F)
- 노드 (c)는') 부모님은 (i, g, f)
직계 부모 노드를 통과하는 방법을 알아낼 수 없습니다.
foreach($nodes as $node){
//CHECK IF NODE EXISTS
if(array_key_exists($node[1],$results)){
//DO NOTHING
array_push($results[$node[1]],$node[0]);
}
else{
//CREATE NEW CHILD ARRAY
$results[$node[1]] = [];
//PUSH PARENT INTO CHILD ARRAY
array_push($results[$node[1]],$node[0]);
}
}
foreach($results as $k => $v){
echo "child[$k] parents(" . implode($v,', ').")" ;
echo "</br>";
}
질문 :가 어떻게 가장 효율적으로 영지에서이 출력을 달성 할 수 있습니까?
직접 해결하려고 시도한 것을 보여주십시오. – miken32
@ miken32 코드가 추가되었습니다. –