#include<stdio.h>
#include<stdlib.h>
typedef struct node{
char data;
struct node *l;
struct node *r;
}node;
node *p_A,*p_B,*p_C,*p_D,*p_E,*p_F,*p_G;
void traverse1(node*);
void traverse2(node*);
void traverse3(node*);
void visit(node*);
void end(node*);
void traverse1(node *p_node)
{
if(p_node!=NULL){
visit(p_node);
traverse1(p_node->l);
traverse1(p_node->r);
}
}
void traverse2(node *p_node)
{
if(p_node!=NULL){
traverse2(p_node->l);
visit(p_node);
traverse2(p_node->r);
}
}
void traverse3(node *p_node)
{
if(p_node!=NULL){
traverse3(p_node->l);
traverse3(p_node->r);
visit(p_node);
}
}
void visit(node *c_node)
{
printf("%2c->",c_node->data);
}
void end(node *p_node)
{
if(p_node->l!=NULL)
end(p_node->l);
if(p_node->r!=NULL)
end(p_node->r);
printf("%2c노드 삭제",p_node->data);
free(p_node);
}
int main()
{
p_A=(node*)malloc(sizeof(node));
p_B=(node*)malloc(sizeof(node));
p_C=(node*)malloc(sizeof(node));
p_D=(node*)malloc(sizeof(node));
p_E=(node*)malloc(sizeof(node));
p_F=(node*)malloc(sizeof(node));
p_G=(node*)malloc(sizeof(node));
p_A->data='A';
p_B->data='B';
p_C->data='C';
p_D->data='D';
p_E->data='E';
p_F->data='F';
p_G->data='G';
p_A->l=p_B;
p_A->r=p_C;
p_B->l=p_D;
p_B->r=p_E;
p_C->l=p_F;
p_C->r=p_G;
p_D->l=NULL;
p_D->r=NULL;
p_E->l=NULL;
p_E->r=NULL;
p_F->l=NULL;
p_F->r=NULL;
p_G->l=NULL;
p_G->r=NULL;
traverse1(p_A);
printf("\n");
traverse2(p_A);
printf("\n");
traverse3(p_A);
printf("\n");
end(p_A);
}
- 앞으로 Study For Us HOSTING 카톡 채널에서 장애 소식 안내합니다. (클릭시 카톡 채널 이동)
일주일 동안 열지 않기
- 단축키 안내 m=메인페이지 / n=공지 / f=자유게시판 / h=호스팅 페이지 / q=FAQ / c=출석체크 / p=패널접속 / s=스포티콘 / w=스포어 위키일주일 동안 열지 않기
코드
2018.04.24 21:07
c 이진트리 전,중,후위 알고리즘
조회 수 741 추천 수 0 댓글 2
라이선스 | GPL v2 |
---|
TAG •