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);
        }
    } 
  • 相关阅读:
    LPC2478中断控制器以及串口详解
    有效三角形的个数
    小于K的两数之和
    和至少为K的最短子数组
    docker: 构建自己的镜像
    判断字符串是否是异位词
    找出字符串中的最长回文
    knuth洗牌算法
    使用adb命令控制anroid手机
    bitmap以及异或运算法
  • 原文地址:https://www.cnblogs.com/hekuiFlye/p/9574361.html
Copyright © 2011-2022 走看看