이 진 트 리 의 순서, 중간 순서, 뒤 순 서 는 c 언어 를 옮 겨 다 닌 다.
1904 단어 데이터 구조
#include
#include
#define Data_Type char
typedef struct Node{
Data_Type data;
Node * lchird;
Node * rchird;
}NODE, *PNODE;
PNODE create();
void preOrderTraverse(PNODE);
void inOrderTraverse(PNODE);
void postOrderTraverse(PNODE);
int main(void){
PNODE pRoot = create();
postOrderTraverse(pRoot);
return 0;
}
PNODE create(){
PNODE a = (PNODE)malloc(sizeof(PNODE));
PNODE b = (PNODE)malloc(sizeof(PNODE));
PNODE c = (PNODE)malloc(sizeof(PNODE));
PNODE d = (PNODE)malloc(sizeof(PNODE));
PNODE e = (PNODE)malloc(sizeof(PNODE));
PNODE f = (PNODE)malloc(sizeof(PNODE));
PNODE g = (PNODE)malloc(sizeof(PNODE));
a->data = 'a';
a->lchird = b;
a->rchird = c;
b->data = 'b';
b->lchird = d;
b->rchird = e;
c->data = 'c';
c->lchird = f;
c->rchird = NULL;
d->data = 'd';
d->lchird = NULL;
d->rchird = NULL;
e->data = 'e';
e->lchird = NULL;
e->rchird = NULL;
f->data = 'f';
f->lchird = NULL;
f->rchird = g;
g->data = 'g';
g->lchird = NULL;
g->rchird = NULL;
return a;
}
void preOrderTraverse(PNODE p){
PNODE pRoot = p;
printf("%c
",pRoot->data);
if(NULL!=pRoot->lchird){
preOrderTraverse(pRoot->lchird);
}
if(NULL!=pRoot->rchird){
preOrderTraverse(pRoot->rchird);
}
}
void inOrderTraverse(PNODE ps){
PNODE pRoot = p;
if(NULL!=pRoot->lchird){
inOrderTraverse(pRoot->lchird);
}
printf("%c
",pRoot->data);
if(NULL!=pRoot->rchird){
inOrderTraverse(pRoot->rchird);
}
}
void postOrderTraverse(PNODE p){
PNODE pRoot = p;
if(NULL!=pRoot->lchird){
postOrderTraverse(pRoot->lchird);
}
if(NULL!=pRoot->rchird){
postOrderTraverse(pRoot->rchird);
}
printf("%c
",pRoot->data);
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 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에 따라 라이센스가 부여됩니다.