검색어 입력폼

[자료구조] 이진 트리에서의 서브트리 교환 알고리즘.

등록일 2003.12.04 파일확장자압축파일 (zip) | 10페이지 | 가격 500원

*해당 문서는 미리보기가 지원되지 않습니다.

소개글

허접이지만 직접 짰습니다. 믿으셔도 됩니다..
프로그램 프로젝트 폴더..
상세한 주석을 달았고 잘 실행됩니다...

컴파일 실행환경

없음

본문내용

// 두개의 서브트리를 교체한다.
void TreeController::nodeChange(Node* lhs, Node* rhs )
{
Node* lhsPar = findParent(lhs);
Node* rhsPar = findParent(rhs);

// 직접적인 부모관계를 맺고있으면 교체하지 않음
if( lhs == findParent(rhs) || rhs == findParent(lhs) )
{
return;
}

// 같은 부모를 가진경우
if( lhsPar == rhsPar )
{
Node* temp = lhsPar->getLeft();
lhsPar->setLeft( lhsPar->getRight() );
lhsPar->setRight(temp);
return;
}

// 다른 부모를 가진 경우
if( lhsPar->getLeft() == lhs )
{
lhsPar->setLeft(rhs);
}else{
lhsPar->setRight(rhs);
}

if( rhsPar->getLeft() == rhs )
{
rhsPar->setLeft(lhs);
}else{
rhsPar->setRight(lhs);
}
}

압축파일내 파일목록

TreeViewer.dsw
TreeViewer.ncb
TreeViewer.plg
Node.h
Node.cpp
TreeController.h
TreeController.cpp
TreeDisplayManager.h
TreeViewer.dsp
TreeDisplayManager.cpp
pMain.cpp
TreeViewer.opt
Debug/TreeViewer.exe

참고 자료

Effective C++,
C로 배우는 알고리즘1,2
다운로드 맨위로