이 진 트 리 의 우선 순 서 는 옮 겨 다 니 고, 중간 순 서 는 옮 겨 다 니 며, 뒤의 순 서 는 옮 겨 다 닌 다.
// , ,
#include<malloc.h> // malloc()
#include<stdio.h> // , EOF(=^Z F6),NULL
#include<stdlib.h> // atoi(),exit()
#include<math.h> // , floor(),ceil(),abs()
#define ClearBiTree DestroyBiTree //
typedef struct BiTNode
{
int data; //
BiTNode *lchild,*rchild; //
}BiTNode,*BiTree;
int Nil=0; // 0
void visit(int e)
{ printf("%d ",e); //
}
void InitBiTree(BiTree &T)
{ // : T
T=NULL;
}
void CreateBiTree(BiTree &T)
{ // 6.4: ( , ),
// T。 Nil ( ) 。
int number;
scanf("%d",&number); //
if(number==Nil) //
T=NULL;
else //
{ T=(BiTree)malloc(sizeof(BiTNode)); //
if(!T)
exit(OVERFLOW);
T->data=number; // T
CreateBiTree(T->lchild); //
CreateBiTree(T->rchild); //
}
}
void DestroyBiTree(BiTree &T)
{ // : T 。 : T
if(T) //
{ DestroyBiTree(T->lchild); // , ,
DestroyBiTree(T->rchild); // , ,
free(T); //
T=NULL; // 0
}
}
void PreOrderTraverse(BiTree T,void(*Visit)(int))
{ // : T ,Visit 。 6.1
// : T, Visit
if(T) // T
{ Visit(T->data); //
PreOrderTraverse(T->lchild,Visit); //
PreOrderTraverse(T->rchild,Visit); //
}
}
void InOrderTraverse(BiTree T,void(*Visit)(int))
{ // : T ,Visit
// : T, Visit
if(T)
{ InOrderTraverse(T->lchild,Visit); //
Visit(T->data); //
InOrderTraverse(T->rchild,Visit); //
}
}
void PostOrderTraverse(BiTree T,void(*Visit)(int))
{ // : T ,Visit
// : T, Visit
if(T) // T
{ PostOrderTraverse(T->lchild,Visit); //
PostOrderTraverse(T->rchild,Visit); //
Visit(T->data); //
}
}
void main()
{
BiTree T;
InitBiTree(T); // T
printf(" , 0 , :1 2 0 0 3 0 0
");
CreateBiTree(T); // T
printf(" :
");
PreOrderTraverse(T,visit); // T
printf("
:
");
InOrderTraverse(T,visit); // T
printf("
:
");
PostOrderTraverse(T,visit); // T
}
, 0 , :1 2 0 0 3 0 0
1 2 4 6 0 0 7 0 8 9 0 0 10 0 0 5 0 0 3 0 0
:1 2 4 6 7 8 9 10 5 3
:6 4 7 9 8 10 2 5 1 3
:6 9 10 8 7 4 5 2 3 1
, , ,
。
:(1) ;(2) ;(3)
:(1) ;(2) ;(3)
:(1) ;(2) ;(3)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.