1. 程式人生 > >7-4 輸出一棵給定二叉樹的所有葉子節點

7-4 輸出一棵給定二叉樹的所有葉子節點

//輸出一棵給定二叉樹的所有葉子節點
#include "btree.cpp"
void DispLeaf(BTNode *b)
{
	if (b!=NULL) 
	{
		if (b->lchild==NULL && b->rchild==NULL) 
			printf("%c ",b->data);	//訪問葉子節點
		DispLeaf(b->lchild);		//輸出左子樹中的葉子節點
		DispLeaf(b->rchild);		//輸出右子樹中的葉子節點
	}
}
void DispLeaf1(BTNode *b)
{
	if (b!=NULL) 
	{
		if (b->lchild==NULL && b->rchild==NULL) 
			printf("%c ",b->data);	//訪問葉子節點
		DispLeaf1(b->rchild);		//輸出右子樹中的葉子節點
		DispLeaf1(b->lchild);		//輸出左子樹中的葉子節點
	}
}
int main()
{
	BTNode *b;
	CreateBTree(b,"A(B(D(,G)),C(E,F))");
	printf("b:");DispBTree(b);printf("\n");
	printf("從左到右輸出所有葉子節點:");DispLeaf(b);printf("\n");
	printf("從右到左輸出所有葉子節點:");DispLeaf1(b);printf("\n");
	DestroyBTree(b);
	return 1;
}