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);
        }
    } 
  • 相关阅读:
    File初识和练习
    图床
    servlet
    css伪类及伪元素用法
    css中的定位position
    块级元素与行级元素
    清除浮动
    CSS浮动
    fastjson 1.2.6以下版本 解析字符串末尾出现/x会陷入死循环 报oom异常
    记一次select2赋值动态数组的坑
  • 原文地址:https://www.cnblogs.com/hekuiFlye/p/9574361.html
Copyright © 2011-2022 走看看