이 진 트 리 의 순서, 중간 순서, 뒤 순 서 는 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); }

좋은 웹페이지 즐겨찾기