데이터 구조-포리스트를 이진 트리로 변환하는 간단한 구현

자식 형제 표기법의 이해와 코드 구현 | 트리를 이진 트리로 변환
포리스트는 여러 개의 트리로 구성되어 있으며, 포리스트에있는 각 트리의 루트 노드는 형제로 간주 할 수 있습니다. 이진 트리이므로 포리스트를 이진 트리로 변환 할 수도 있습니다.

포리스트를 이진 트리로 변환하는 단계는 다음과 같습니다.
(1) 먼저 각 트리를 이진 트리로 변환합니다.
(2) 첫 번째 이진 트리는 두 번째 이진 트리에서 시작하여 후자의 이진 트리에서 루트 노드가 이동하지 않습니다. 이진 트리 루트 노드의 오른쪽 자식 노드는 선으로 연결됩니다. 모든 이진 트리가 연결되면 얻은 이진 트리는 포리스트에서 변환 된 이진 트리입니다.여기에 사진 설명 삽입

숲에서 이진 트리로의 전환 실현

인터넷에서 코드의 몇 가지 예를 찾지 못했습니다.
방법에 대해 생각했습니다. 여기에는 다음이
있습니다. 1. 여러 트리를 포리스트로 전환합니다. 트리를 이진 트리로 변환하면 즉시 새로운 하나는 루트 노드의 오른쪽 자식입니다. 이런 식으로 트리는 포리스트의 구조를 완성합니다.
여기에 사진 설명 삽입

2. 트리를 차례로 이진 트리로 전환 한 다음 첫 번째 트리 (이진 트리 형태)의 오른쪽 자식이 존재하는지 (존재하지 않아야 함) 확인한 다음 두 번째 트리의 루트 노드를 오른쪽 자식으로 사용합니다. 첫 번째 나무의 연결입니다.

나무의 수에 따라 위의 작업을 반복하십시오.

여기에 사진 설명 삽입

Status CreatForst(Node &T1, Node &T2)
{
    
    
	
	if (T1->next_sib != NULL)
	{
    
    
		CreatForst(T1->next_sib,T2);
		
	}
	else
	{
    
    
		T1->next_sib = T2;
		//return 0;
	}
	return 0;
}

이진 트리에 자식 형제 표기 | 트리의 이해 및 코드 구현에 위의 부분을 추가합니다.

추천

출처blog.csdn.net/weixin_46096297/article/details/112546559