2010-05-11 5 views
2

Btree의 선주문 순회를 수행하는 방법을 파악하려고합니다. 나는 일반적으로 다음과 같이 탐색 작업을 예약 주문 것을 알고 :Btree의 Preoder 순회

preorder(node) 
{ 
print value in node 
preorder(left child) 
preorder(right child) 
} 

어떤 날은 각 노드에 여러 값 여러 자식 포인터가 있기 때문에하는 BTREE와 함께이 일을하는 방법입니다에 혼란. 값을 인쇄 할 때 노드의 모든 값이 왼쪽 자식으로 내림되기 전에 인쇄됩니까?

각 노드는 다음과 같습니다

자식 1 값 1 자식 2 값 2 child3 VALUE3 child4

또한

, 중위 순회 값을 표시합니다 무엇 때문에 왜 사람은 BTREE의 전순 주사를 수행 할 것 오름차순으로?

+1

"... 누군가 Btree의 선주문 탐색을 원할 것입니다 ...". 나는 모른다. 당신은 그것을하는 방법을 묻는 사람입니다; 그렇게하기위한 동기가 있다고 생각합니다. 아니면이 숙제인가? –

+0

btree에는 정확히 두 개의 자식 포인터가 있습니다. 하나는 왼쪽 자식에 대해 하나는 오른쪽에 대한 것입니다. 값은 코드에서 인쇄 한 순서대로 인쇄됩니다. Btrees는 정렬 된 데이터를 저장하는 것보다 * 기타 * 사용할 수 있습니다. – WhirlWind

+0

B 트리는 2 진 트리가 아닙니다. 각 노드는 세 개 이상의 포인터를 가질 수 있습니다. 각 노드의 포인터 수는 각 노드의 키 수보다 1입니다. – neuromancer

답변

2

정의 된 순서대로 현재 노드의 모든 값을 인쇄합니다 (왼쪽에서 오른쪽은 의미있는 기본값이지만 사용자에 따라 다름). 그런 다음 각 하위 노드를 방문하십시오 (다시 말하지만 순서는 사용자가 결정합니다).