题目:

设二叉树中每个结点存放单个字符,其结点类型如下:

typedef struct node

{   char  data;

    struct node *lchild,*rchild;

} BTNode;

设计一个算法求其中单分支的结点个数。

分析:这里可以采用递归的方法来查找,每查找成功一次就+1

代码:

int singleodes(BTNode *b)
{	if (b==NULL) return 0; 
    	if ((b->lchild==NULL && b->rchild!=NULL) ||	//单分支的结点
		(b->lchild!=NULL && b->rchild==NULL)
		return singleodes(b->lchild)+ singleodes(b->rchild)+1;
	else
		return singleodes(b->lchild)+ singleodes(b->rchild);
)

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐