二叉树2

include<stdio.h>

include<malloc.h>

typedef struct BTNode
{
char data;
struct BTNode * LChild;
struct BTNode * RChild;
}BTNODE, * PBTNODE;

PBTNODE CreateBTree(void);
void PreorderTraversalBTree(struct BTNode *);
void InorderTraversalBTree(struct BTNode *);
void PostorderTraversalBTree(struct BTNode *);

int main(void)
{
struct BTNode * pT = CreateBTree();
printf("先序遍历: ");
PreorderTraversalBTree(pT);
printf(";\n");

printf("中序遍历: ");
InorderTraversalBTree(pT);
printf(";\n");

printf("后序遍历: ");
PostorderTraversalBTree(pT);
printf(";\n");

return 0;

}

void PostorderTraversalBTree(struct BTNode * pT)
{
if(NULL != pT)
{
if(NULL != pT->LChild)
{
PostorderTraversalBTree(pT->LChild);
}

	if(NULL != pT->RChild)
	{
		PostorderTraversalBTree(pT->RChild);
	}
	
	printf("%c  ", pT->data);
	
}

else
{
	return;
}

}

void InorderTraversalBTree(struct BTNode * pT)
{
if(NULL != pT)
{
if(NULL != pT->LChild)
{
InorderTraversalBTree(pT->LChild);

	}
	
	printf("%c  ", pT->data);
	
	if(NULL != pT->RChild)
	{
		
		InorderTraversalBTree(pT->RChild);
		
	}
	
	
}

else
{
	
	return;
	
}

}

void PreorderTraversalBTree(struct BTNode * pT)
{
if(NULL != pT)
{
printf("%c ", pT->data);

	if(	NULL != pT->LChild)
	{
		
		PreorderTraversalBTree(pT->LChild);
		
	}
	
	if(NULL != pT->RChild)
	{
		
		PreorderTraversalBTree(pT->RChild);
		
	}
	
}

else
{
	return;
}

}

PBTNODE CreateBTree(void)
{
struct BTNode * pA = (struct BTNode *)malloc(sizeof(struct BTNode));
struct BTNode * pB = (struct BTNode *)malloc(sizeof(struct BTNode));
struct BTNode * pC = (struct BTNode *)malloc(sizeof(struct BTNode));
struct BTNode * pD = (struct BTNode *)malloc(sizeof(struct BTNode));
struct BTNode * pE = (struct BTNode *)malloc(sizeof(struct BTNode));
struct BTNode * pF = (struct BTNode *)malloc(sizeof(struct BTNode));

pA->data = 'A';
pB->data = 'B';
pC->data = 'C';
pD->data = 'D';
pE->data = 'E';
pF->data = 'F';

pA->LChild = pB;
pA->RChild = pC;

pB->LChild = pD;
pB->RChild = pE;

pC->LChild = NULL;
pC->RChild = pF;

pD->LChild = pD->RChild = NULL;

pE->LChild = pE->RChild =NULL;

pF->LChild = pF->RChild = NULL;

return pA;

}

/*
先序遍历: A B D E C F ;
中序遍历: D B E A C F ;
后序遍历: D E B F C A ;
Press any key to continue
*/

posted @ 2020-10-27 21:25  星空0125  阅读(67)  评论(0)    收藏  举报