二叉树的相关算法

Posted hekuiflye

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二叉树的相关算法相关的知识,希望对你有一定的参考价值。

1.求二叉树所有的节点数

2.求二叉树所有的叶子节点数

3.求二叉树最小值的节点值

4.求二叉树所有节点值之和

5.求二叉树节点值为x的个数

6.删除二叉树

//求二叉树所有的节点数
int nodes(BTNode *r){
    if(r==0)
        return 0;
    else
        return nodes(r->lchild)+nodes(r->rchild)+1;
} 

//求二叉树所有的叶子节点数
int leafNodes(BTNode *r){
    if(r==NULL)
        return 0;
    else if(r->lchild==NULL&&r->rchild==NULL)
        return 1;
    else
        return leafNodes(r->lchild)+leafNodes(r->rchild);
} 

//求二叉树最小值的节点值
void minNode(BTNode *r,elemType &min){
    if(r!=NULL){
        if(r->data<min)
            min=r->data;
        minNode(r->lchild,min);
        minNode(r->rchild,min);
    }
    
} 

//求所有节点值之和
int findSum(BTNode *r){
    if(r==NULL)
        return 0;
    else
        return r->data+findSum(r->lchild)+findSum(r->rchild);
} 

//求二叉树中节点值为x的节点个数
int findCount(BTNode *r,int x){
    if(r==NULL)
        return 0;
    if(x==r->data)
        return 1+findCount(r->lchild,x)+findCount(r->rchild,x);
    else
        return findCount(r->lchild,x)+findCount(r->rchild,x);    
    
} 

//删除二叉树
void delTree(BTNode *r){
    if(r!=NULL){
        delTree(r->lchild);
        delTree(r->rchild);
        free(r);
    }
} 

 

以上是关于二叉树的相关算法的主要内容,如果未能解决你的问题,请参考以下文章

二叉树的相关算法

数据结构-树二叉树的相关算法

JavaScript实现排序二叉树的相关算法

算法二叉树相关算法

数据结构(C语言版)严蔚敏---二叉树遍历操作二叉树的相关代码

数据结构(C语言版)严蔚敏---二叉树遍历操作二叉树的相关代码