일지

알고리즘...45

niamdank 2021. 9. 2. 09:31

이진 탐색 트리 출력

이진 탐색 트리 구현 후 테스트를 위한 출력 함수를 만든다. 이때 다음과 같은 정보가 필요하다.

  • 노드의 간격과 왼쪽 공백에 필요한 정보 루트 기준으로 최대 깊이를 파악하여 깊이에 따라 간격을 조절한다.
  • 노드의 출력 순서 라인별로 출력이 되어야 하므로 BFS를 이용하여 출력을 진행한다.

 

깊이 파악을 위한 함수

struct BinarySearchNode
{
	int GetMaxDepth()
	{
		int leftMaxDepth{ left != nullptr ? left->GetMaxDepth() : 0 };
		int rightMaxDpth{ right != nullptr ? right->GetMaxDepth() : 0 };
		return (leftMaxDepth > rightMaxDpth ? leftMaxDepth : rightMaxDpth) + 1;
	}
    
	int data;
	BinarySearchNode* parent;
	BinarySearchNode* left;
	BinarySearchNode* right;
};