求树的结点个数(长子-兄弟表示法)

思路:采用递归的思想,递归调用本算法来计算根结点的每棵子树的结点个数,并将它们相加,之后再加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;

  }

      

posted @ 2012-09-10 20:13  毛毛hhmm  阅读(834)  评论(0编辑  收藏  举报