순회 (Traversal)


이진 트리의 기본 순회 종류

Untitled


전위 순회 (Preorder Traversal)

루트 → 왼쪽 서브트리 → 오른쪽 서브트리

preorder(x)

if x≠NULL    // x가 null이 아닐 때만 처리
	then print DATA(x);    // 루트(x) 노드 처리
			preorder(LEFT(x));    // 왼쪽 서브트리 방문
			preorder(RIGHT(x));    // 오른쪽 서브트리 방문

중위 순회 (Inorder Traversal)

왼쪽 서브트리 → 루트 → 오른쪽 서브트리

inorder(x) 

if x≠NULL    // x가 null이 아닐 때만 처리
	then inorder(LEFT(x));    // 왼쪽 서브트리 방문 
			print DATA(x);    // 루트(x) 노드 처리
			inorder(RIGHT(x));    // 오른쪽 서브트리 방문

후위 순회 (Postorder Traversal)

왼쪽 서브트리 → 오른쪽 서브트리 → 루트

postorder(x)

if x≠NULL    // x가 null이 아닐 때만 처리
	then postorder(LEFT(x));    // 왼쪽 서브트리 방문
			postorder(RIGHT(x));    // 오른쪽 서브트리 방문
			print DATA(x);    // 루트(x) 노드 처리