樹的題目(一)

//求葉子結點數
int leaves(BiTree T){
	if(!T)return 0;
	if(T->lchild==NULL&&T->rchild==NULL)return 1;
	return leaves(T->lchild)+leaves(T->rchild);
}

//求樹的高度
int height(BiTree T){
	if(!T)return 0;
	int lh=height(T->lchild);
	int rh=height(T->rchild);
	return (lh>rh?lh:rh)+1;
}

//求度爲2結點的個數
int degree2(BiTree T){
	if(!T)return 0;
	if(T->lchild!=NULL&&T->rchild!=NULL)
		return degree2(T->lchild)+degree2(T->rchild)+1;
	else
		return degree2(T->lchild)+degree2(T->rchild);	
}

//打印結點x的所有祖先
int ancestor(BiTree T,int x){
	if(!T)return 0;
	if(T->data==x)return 1;
	if(ancestor(T->lchild,x)||ancestor(T->rchild,x)){
		visit(T);
		return 1;
	}else
		return 0; 
} 

 

發佈了55 篇原創文章 · 獲贊 7 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章