주어진 이 진 트 리 가 이 진 트 리 인지 여 부 를 결정 합 니 다.
1912 단어 데이터 구조
입력
이 진 트 리 의 우선 순 서 를 입력 하 십시오. 만약 에 특정한 노드 에 왼쪽 아이 (오른쪽 아이) 가 없 으 면 왼쪽 아이 (오른쪽 아이) 는 0 으로 표시 합 니 다.
출력
이 진 트 리 의 중간 순 서 를 출력 하고 이 이 진 트 리 가 이 진 트 리 인지 여 부 를 판단 합 니 다. 만약 에 'it' 를 출력 합 니 다. is an Binary OrderTree! ", 그렇지 않 으 면 출력" It is not an BinaryOrderTree!”
입력 샘플
5 3 2 0 0 4 0 0 7 6 0 0 8 0 0
출력 샘플
2 3 4 5 6 7 8 It is an BinaryOrderTree!
제시 하 다.
중간 순서 로 두 갈래 정렬 트 리 를 옮 겨 다 니 면 키워드 의 오름차 순 서 를 얻 을 수 있 습 니 다. 이 를 판정 근거 로 할 수 있 습 니 다.
#include
#include
#include
using namespace std;
typedef struct node{
int info;
node* lchild;
node* rchild;
}node,*Pnode;
Pnode creat(){//
Pnode p;
int num;
cin>>num;
if(num==0) p=NULL;
else{
p=(Pnode)malloc(sizeof(node));
p->info=num;
p->lchild=creat();
p->rchild=creat();
}
return p;
}
void output(Pnode t){//
if(t){
output(t->lchild);
cout<info<rchild);
}
}
int isBinaryTree(Pnode t){//
if(t){
if(t->lchild==NULL&&t->rchild==NULL) return 1; // , 1
else if(t->lchild==NULL) {
if(t->inforchild->info) return isBinaryTree(t->rchild);
else return 0;
}// ,
else if(t->rchild==NULL) {
if(t->info>t->lchild->info) return isBinaryTree(t->lchild);
else return 0;
}// ,
else{
if(t->info>t->lchild->info&&t->inforchild->info)
return isBinaryTree(t->rchild)&&isBinaryTree(t->lchild);
else return 0;
}//
}
}
int main(){
Pnode p=creat();
output(p);
if(isBinaryTree(p)) cout<
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.