이 진 트 리 의 재 귀적 생 성, 우선 순서 (중 순서, 후 순서) 재 귀적 으로 이 진 트 리 를 옮 겨 다 닙 니 다.

1427 단어 데이터 구조
/*
*@2012-12-11
*        ,  (  、  )       
*/
#include 
using namespace std;
typedef char TElemType;
typedef struct BitreeNode
{
	TElemType TItem;
	struct BitreeNode *lchild;//   
	struct BitreeNode *rchild;//   
}BitreeNode,*Bitree;
//      
int InitBitree(Bitree &T)
{
	T=(Bitree)malloc(sizeof(BitreeNode));
	if(!T)
		return 0;
	T->TItem='#';
	T->lchild=NULL;
	T->rchild=NULL;
	return 1;
}
//        
int EmptyBitree(Bitree &T)
{
	if(T!=NULL)
		return 1;
	return 0;
}
//     
int DestroyBitree(Bitree &T)
{
	if(T!=NULL)
	{
		if(DestroyBitree(T->lchild))
		{	
			if(DestroyBitree(T->rchild))
			{
				//cout<TItem<>ch;// ab##c##    ,'#'          
	if(ch=='#')
	{
		T=NULL;
		return 0;
	}
	else
	{
		T=(Bitree)malloc(sizeof(BitreeNode));
		if(T)
		{
			T->TItem=ch;
			CreatBitree(T->lchild);
			CreatBitree(T->rchild);
		}
	}
	return 1;
}
//       , -> -> 
void PreOrderTravers(Bitree T)
{
	if(T!=NULL)
	{
		cout<TItem<lchild);
		PreOrderTravers(T->rchild);
	}
}
//       , -> -> 
void InOrderTravers(Bitree T)
{
	if(T!=NULL)
	{
		InOrderTravers(T->lchild);
		cout<TItem<rchild);
	}
}
//       , -> -> 
void PostOrderTravers(Bitree T)
{
	if(T!=NULL)
	{
		PostOrderTravers(T->lchild);
		PostOrderTravers(T->rchild);
		cout<TItem<

좋은 웹페이지 즐겨찾기