C 언어 이 진 트 리 의 옮 겨 다 니 기
2243 단어 c 언어 데이터 구조데이터 구조이 진 트 리c 언어두루
typedef struct tree
{
int data; // , int data
struct tree *l,*r;
}TREE;
이 진 트 리 노드 를 만 드 는 함수
이 진 트 리 를 만 드 는 함수
4. 567913. 다음은 이 진 트 리 를 옮 겨 다 니 는 거 예요.
우선 선착순 으로 옮 겨 다 니 는 코드 를 써 드 리 겠 습 니 다.
TREE* create_node(int data) // ,
{
TREE* root = malloc(sizeof(TREE)); //
root->data = data; //
root->l = root->r = NULL;
return root;
}
중간 순서 로 옮 겨 다 닌 다.
TREE* create_tree(int n) // ,
{
TREE *root = create_node(n);
if(2*n<10)
root->l=create_tree(2*n);
if(2*n+1<10)
root->r=create_tree(2*n+1);
return root;
}
뒤 순 서 를 옮 겨 다 닌 다.
void show_tree_pre(TREE *root) // ,
{
if(root == NULL) //
return;
printf("%d-",root->data); // :
show_tree_pre(root->l); //
show_tree_pre(root->r); //
}
이상 은 이 진 트 리 의 세 가지 기본 적 인 옮 겨 다 니 는 방식 이다.
다음 에 주 함 수 를 쓰 시 오
void show_tree_mid(TREE *root) // ,
{
if(root == NULL)
return;
show_tree_mid(root->l);
printf("%d-",root->data); //
show_tree_mid(root->r);
}
출력 결과
1-2-4-8-9-5-3-6-7- 8-4-9-2-5-1-6-3-7- 8-9-4-5-2-6-7-3-1-
끝, 우선 순 서 는 뿌리 - > 왼쪽 나무 - > 오른쪽 나무
중 서 는 왼쪽 나무 - > 뿌리 - > 오른쪽 나무
뒤 순 서 는 왼쪽 나무 - > 오른쪽 나무 - > 뿌리
위의 세 가지 방식 으로 재 귀 하면 이 진 트 리 전 체 를 옮 겨 다 닐 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 이 진 트 리 의 옮 겨 다 니 기나 무 는 비교적 중요 한 데이터 구조, 특히 이 진 트 리 이다.이 진 트 리 는 특수 한 나무 로 이 진 트 리 의 각 노드 에 최대 두 개의 키 노드 가 있 는데 보통 왼쪽 노드 와 오른쪽 노드 (또는 왼쪽 아...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.