프로 그래 밍 연습 - 이 진 트 리 (이 진 트 리 회전 양 방향 링크)
제목:
이원 찾기 트 리 를 입력 하고 이 이원 찾기 트 리 를 정렬 된 양 방향 링크 로 변환 합 니 다.
새로운 노드 를 만 들 수 없고 포인터 의 방향 만 조정 하 라 고 요구 합 니 다.
10
/ /
6 14
/ / / /
4 8 12 16
양 방향 링크 로 변환
4=6=8=10=12=14=16。
먼저 우리 가 정의 한 이원 찾기 트 리 노드 의 데이터 구 조 는 다음 과 같다.
struct BSTreeNode
{
int m_nValue; // value of node
BSTreeNode *m_pLeft; // left child of node
BSTreeNode *m_pRight; // right child of node
};
해답:
먼저 순서대로 옮 겨 다 니 며 모든 노드 에 대해 포인터 가 왼쪽 나무의 가장 오른쪽 노드 (왼쪽 나무의 최대 노드) 를 가리 키 고 그의 오른쪽 포인터 가 오른쪽 나무의 가장 왼쪽 노드 (오른쪽 나무의 최소 노드) 를 가리 키 며 먼저 이 두 노드 를 찾 아야 한다. 그러나 이 두 노드 의 지침 은 먼저 조정 하지 않 고 왼쪽 나무 와 오른쪽 나 무 를 재 귀적 으로 호출 한 후에 이 두 노드 를 조정 해 야 한다.프로그램 이 정상적으로 실 행 될 수 있 도록 이 두 노드 를 미리 조정 하면 좌우 서브 트 리 의 나무 구조 가 파괴 되 고 운행 이 순환 되 지 않 습 니 다.
다음은 코드:
참고 문헌:
http://www.360doc.com/content/07/0228/15/11586_379396.shtml
http://blog.csdn.net/qjt_uestc/article/details/6618022
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.