数据结构|求二叉树中单分支节点的个数

  • Post author:
  • Post category:其他


题目:

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

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);
)



版权声明:本文为jingling555原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。