设计一算法,统计二叉树中度为 2 的结点总数。

mac2022-06-30  19

假设二叉树的结点类型定义如下: 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; }
最新回复(0)