bitreetraverse.h

来自「编写程序」· C头文件 代码 · 共 65 行

H
65
字号
//遍历二叉树
//前序遍历
void PreOrder(BiTreeNode *t,void Visit(DataType item))
{	
	if(t!=NULL)
	{	
		Visit(t->data);
		PreOrder(t->leftChild,Visit);
		PreOrder(t->rightChild,Visit);
	}
}

//中序遍历
void InOrder(BiTreeNode *t,void Visit(DataType item))
{	
	if(t!=NULL)
	{		
		InOrder(t->leftChild,Visit);
		Visit(t->data);
		InOrder(t->rightChild,Visit);
	}
}

//后序遍历
void PostOrder(BiTreeNode *t,void Visit(DataType item))
{	
	if(t!=NULL)
	{	
		PostOrder(t->leftChild,Visit);
		PostOrder(t->rightChild,Visit);
		Visit(t->data);
	}
}

//撤销二叉树
void Destroy(BiTreeNode **root)
{	
	if((*root)->leftChild!=NULL&&(*root)!=NULL)
		Destroy(&(*root)->leftChild);
	if((*root)->rightChild!=NULL&&(*root)!=NULL)
		Destroy(&(*root)->rightChild);
	
	free(*root);
}

//打印二叉树
void PrintBiTree(BiTreeNode *bt,int n)
{	
	int i;
	
	if(bt==NULL)
		return;
		
	PrintBiTree(bt->rightChild,n+1);
	
	for(i=0;i<n;i++)
		printf(" ");
	if(n>0)
	{	
		printf("---");
		printf("%c\n",bt->data);
	}
	
	PrintBiTree(bt->leftChild,n+1);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?