이진 트리 T2가 이진 트리 T1의 하위 트리인지 여부를 확인하고자합니다. 나는 을 선주문 및 순서 순회를 사용하여 T2 및 T1에 대한 문자열 표현을 구축 할 수 있으며, T2 문자열이 T1 문자열의 하위 문자열 인 경우 T2는 T1의 하위 트리임을 읽을 수 있습니다.선행 순서 및 순서가 지정된 문자열을 사용하여 이진 트리가 다른 이진 트리의 하위 트리인지 확인합니다.
이 방법으로는 다소 혼란스럽고 정확성에 대해서는 확신 할 수 없습니다.
위키에서 : "T의 하위 트리는 T의 노드와 T의 하위 노드로 구성된 트리입니다." 다음 예에서
:
T2:
1
/\
2 3
T1:
1
/\
2 3
\
4
우리가 T2와 T1의 문자열을 빌드하는 경우 :
전순 T2 : "1,2,3"
전순 T1 : "1,2, 3,4 "T2 중위
"2,1,3 "
T1 중위"2,1,3,4 '
T2 문자열 따라서 문자열 정합 방법 D를 사용하여, T1의 문자열이다 위에서 설명했듯이, 우리는 T2가 T1의 하위 트리라고 결론을 내려야합니다.
그러나 정의에 의한 T2는 T1의 루트 노드의 모든 자손을 가지지 않으므로 T1의 하위 트리가 아니어야합니다.
관련 토론이 있습니다. here은 방법이 정확하다고 판단하는 것 같습니다.
여기에 뭔가가 있습니까?
당신은'그런 C'를 다시 사용할 수있는 방법을 이론의 작품 T1의 하위 트리 아니에요 아니다 . –
당신이 말하는 이론이 확실하지 않습니다. 나는이 책이 중복 값이없는 나무에 대해 언급하지 않는다는 것을 알아 챘다. (이 책은 일반적인 이진 트리가 아니라 이진 검색 트리를 가리키는 때를 명시 적으로 명시하고있다.이 경우는 이진 검색 트리가 아니다.) –
"선주문 및 순서 순회를 사용하여 T2 및 T1에 대한 문자열 표현을 작성할 수 있으며 T2 문자열이 T1 문자열의 하위 문자열 인 경우 T2는 T1의 하위 트리입니다." 이 이론은 각 노드에 고유 한 문자가있는 경우에만 올 바릅니다. 더 많은 문자가 필요하면 노드 이름의 시작 부분을 명시해야합니다 (예 : 노드 이름이 대문자로 시작하고 다른 모든 문자는 소문자 임). –