이 진 트 리 구축, 옮 겨 다 니 기 (앞 순서, 중간 순서, 뒤 순서), 잎 노드 의 개 수 를 구하 고 노드 의 개 수 를 구하 십시오.
3226 단어 필기시험.데이터 구조 와 알고리즘
typedef struct Node {int data;struct Node *left,*right; }Node;,구조 체 내 에는 데이터, 왼쪽 나무, 그리고 나무 가 포함 되 어 있다.
1. 이 진 트 리 를 만 드 는 프로그램 코드 는 다음 과 같 습 니 다.
Node *CreatBTree() //
{
Node *t;
int x;
scanf("%d",&x);
if(x==0)
{
t=NULL;
}
else
{
t=(Node*)malloc(sizeof(Node));
t->data=x;
printf("
%d :",t->data );
t->left=CreatBTree();
printf("
%d :",t->data );
t->right=CreatBTree();
}
return t;
}
2. 앞 순 서 는 이 진 트 리 를 옮 겨 다 닌 다.
void preVisit(Node *T)
{
if(T==NULL) return;
else
{
printf("%3d",T->data);
preVisit(T->left);
preVisit(T->right);
}
}
3. 중 서 는 이 진 트 리 를 옮 겨 다 닌 다.
void middVisit(Node *T)
{
if(T==NULL) return;
else
{
middVisit(T->left);
printf("%3d",T->data);
middVisit(T->right);
}
}
4. 뒤 순 서 는 이 진 트 리 를 옮 겨 다 닌 다.
void lastVisit(Node *T)
{
if(T==NULL) return;
else
{
lastVisit(T->left);
lastVisit(T->right);
printf("%3d",T->data);
}
}
5. 잎 노드 의 수 를 되 돌려 줍 니 다.int leafnum(Node *T)
{
if (!T)
{
return 0;
}
else if ((!T->left)&&(!T->right))
{
return 1;
}
else
{
return ((leafnum(T->left)+leafnum(T->right)));
}
}
6. 반환 노드 총 수량
int Nodenum(Node *T)
{
if (T)
{
return 1+Nodenum(T->left)+Nodenum(T->right);
}
if (T==NULL)
{
return 0;
}
}
7. 테스트 프로그램;
int menu();
void main()
{
Node *T=NULL;
int choice;
do{
choice=menu();
if(choice==1)
{
printf(" , “0” :!
");
printf(" :
");
T=CreatBTree();
printf(" ");
}
else if(choice==2)
{
printf(" :
");
preVisit(T);
}
else if(choice==3)
{
printf(" :
");
middVisit(T);
}
else if(choice==4)
{
printf(" :
");
lastVisit(T);
}
else if(choice==5)
{
int ct=10;
ct=leafnum(T);
printf(" :
");
printf("%d
",ct);
}
else if(choice==7)
{
int count=Nodenum(T);
printf(" %d 。
",count);
}
else if(choice==8)
exit(0);
}while(choice<=8);
}
int menu()
{
int choice;
printf("
");
printf("
");
printf(" ***************************
");
printf(" * *
");
printf(" * *
");
printf(" * 1 *
");
printf(" * 2 *
");
printf(" * 3 *
");
printf(" * 4 *
");
printf(" * 5 *
");
printf(" * 7 *
");
printf(" * 8 *
");
printf(" ****************************
");
printf(" (1,2,3,4,5,6,7,8):
");
scanf("%d",&choice);
return choice;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
이 진 트 리 구축, 옮 겨 다 니 기 (앞 순서, 중간 순서, 뒤 순서), 잎 노드 의 개 수 를 구하 고 노드 의 개 수 를 구하 십시오.이 진 트 리 는 필기시험 에서 시험 이 가장 빈번 한 데이터 구조 중 하나 로 프로그램 이 이 진 트 리 를 만 들 고 세 가지 순서 로 이 진 트 리 를 옮 겨 다 니 며 잎 노드 의 수 를 되 돌려 이 진 트 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.