求二叉树的高度、结点数和叶结点数

 

1.程序代码(高度):

  int depth(BinTree t)

  {

    if(t == NULL)

      return 0;

    int dl = depth(t->llink);

    int dr = depth(t->rlink);

    return (dl>dr ? dl : dr)+1;

  }

2.程序代码(结点数):

  int num_of_nodes(BinTree t)

  {

    if(t == NULL)

      return 0;

    return 1+num_of_nodes(t->llink)+num_of_nodes(t->rlink);

  }

3.程序代码(叶结点数):

  int num_of_nodes(BinTree t)

  {

    if(t == NULL)

      return 0;

    if(t->llink == NULL && t->rlink == NULL)

      return 1;

    return num_of_nodes(t->llink)+num_of_nodes(t->rlink);

  }

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