데이터 구조 트 리 연습 문제 (3)
프로 그래 밍, 이 진 트 리 가 완전히 이 진 트 리 인지 판단 합 니 다.
기본 사상: 대열 을 이용 하여 위 에서 아래로, 왼쪽 에서 오른쪽으로 층 차 를 옮 겨 다 닐 수 있 습 니 다. 처음으로 잎 이 맺 히 거나 오른쪽 아이 가 없 으 면 뒤쪽 은 모두 잎 이 맺 혀 야 합 니 다.그러면 서 '어떤 결점 에 왼쪽 자녀 가 없 으 면 오른쪽 자녀 가 있어 서 는 안 된다' 는 원칙 을 두루 활용 해 판단 했다.
코드:
int JudgeComplete(BiTree bt)
{
int tag=0;
BiTree p=bt,Q[];
if(p==NULL)
{
return 1;
}
QueueInit(Q);
QueueIn(Q,p)
while(!QueueEmpty(Q))
{
p=QueueOut(Q);
if(p->lchild&&!tag)
{
QueueIn(Q,p->lchild);
}
else
{
if(p->lchild)
{
return 0;
}
else
{
tag=1;
}
}
if(p->rchild&&!tag)
{
QueueIn(Q,p->rchild);
}
else
{
if(p->rchild)
{
return 0;
}
else
{
tag=1;
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.