求树的结点个数(长子-兄弟表示法)
思路:采用递归的思想,递归调用本算法来计算根结点的每棵子树的结点个数,并将它们相加,之后再加1(根结点),就得到该树的结点个数。
时间复杂度:每个结点访问一次,时间代价为O(n)。
空间复杂度:递归栈的深度为O(h),h为树的高度。
程序代码:
int numbew_of_node(CSTree t)
{
PCSNode p1;
int num;
if(t == NULL)
return 0;
for(p1 = t->lchild,num = 1;p1 != NULL; p1 = p1->rsibling)
num += numbew_of_node(p1);
return num;
}