zoukankan      html  css  js  c++  java
  • 二叉树的相关算法(一)

    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);
        }
    } 
  • 相关阅读:
    第01组 Alpha冲刺(2/6)
    第01组 Alpha冲刺(1/6)
    第08组 Alpha冲刺(6/6)
    2019 SDN上机第4次作业
    第08组 Alpha冲刺(5/6)
    2019 SDN阅读作业
    2019 SDN上机第3次作业
    第08组 Alpha冲刺(4/6)
    第08组 Alpha冲刺(3/6)
    第08组 Alpha冲刺(2/6)
  • 原文地址:https://www.cnblogs.com/hekuiFlye/p/9574361.html
Copyright © 2011-2022 走看看