6-8 두 갈래 나무 높이(20분) 귀속과 비귀속 방법 구하기
함수 인터페이스 정의: int GetHeight(BinTree BT);
여기서 BinTree 구조는 다음과 같이 정의됩니다.
typedef struct TNode *Position; typedef Position BinTree; struct TNode{ ElementType Data; BinTree Left; BinTree Right; };
함수에 지정된 두 갈래 트리 BT의 높이 값을 되돌려 달라고 합니다.
심판 테스트 프로그램 예: #include #include
typedef char ElementType; typedef struct TNode *Position; typedef Position BinTree; struct TNode{ ElementType Data; BinTree Left; BinTree Right; };
BinTree CreatBinTree();/* 세부 정보 무시 */int GetHeight(BinTree BT);
int main() { BinTree BT = CreatBinTree(); printf("%d", GetHeight(BT)); return 0; }/* 당신의 코드는 여기에 박혀 있을 것입니다 */
샘플 내보내기(그림에 표시된 트리의 경우):
사
먼저 비귀속 코드를 말하자면 비귀속 코드는 두 갈래 나무의 차원을 바탕으로 하기 때문에 두 갈래 나무의 차원 역행 비귀속 코드는 매우 익숙해야 많은 문제를 유연하게 해결할 수 있다!
int GetHeight( BinTree BT ){
if(BT==NULL){
return 0;
}
int height = 0;
int count = 0; //
int nextCount = 1;//
BinTree a[100];
int front =0;
int rear = 0;
a[rear++] = BT;
while(front<rear){
count++;
BinTree p = a[front++];
if(p->Left){
a[rear++] = p->Left;
}
if(p->Right){
a[rear++] = p->Right;
}
if(count==nextCount){ // 。
height++;
nextCount = rear-front;//
count = 0;
}
}
return height;
}
귀속적 방법
int GetHeight( BinTree BT ){
if(BT==NULL) return 0;
int l,r;
l = GetHeight(BT->Left);
r = GetHeight(BT->Right);
return (l>=r?l:r)+1;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.