假设二叉树的结点类型定义如下:
typedef struct node
{
int data
; struct node
*lchild
,*rchild
;
}Bstree
;
设计一算法,统计二叉树中度为 2 的结点总数。
int count(Bstree
* bt
) {
if (bt
==NULL) return 0;
if(bt
->lchild
!=NULL && bt
->rchild
!=NULL) return 1;
else
return(count(bt
->lchild
)+count(bt
->rchild
));
}
int n
=0; void count(BiTree bt
) {
if(bt
!=NULL) {
if(bt
->lchild
!=NULL&&bt
->rchild
!=NULL)
n
=n
+1;
count(bt
->lchild
);
count(bt
->rchild
);
}
}
或
int count(BiTree bt
) {
if (bt
==NULL)
return 0;
if ((bt
->lchild
==NULL)&&(bt
->rchild
==NULL))
return 0;
if ((bt
->lchild
!=NULL)&&(bt
->rchild
==NULL))
return count(bt
->lchild
);
if ((bt
->lchild
==NULL)&&(bt
->rchild
!=NULL))
return count(bt
->rchild
);
if ((bt
->lchild
!=NULL)&&(bt
->rchild
!=NULL))
return count(bt
->rchild
)+count(bt
->lchild
)+1;
}
转载请注明原文地址: https://mac.8miu.com/read-79675.html