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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ax1274669874/article/details/53638912

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);

  }


展开阅读全文

没有更多推荐了,返回首页