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);
        }
    } 
  • 相关阅读:
    iOS把经纬度反转为位置信息(街道名等)
    ubuntu+mongodb
    IE6下绝对定位的高度自适应
    用Waitn控制网页
    PHPCMS 模板修改
    ubuntu+apache2+mono+mvc3
    灵活强大的jquery分页,样式可自定义
    委托与事件概要笔记
    ubuntu+nodejs
    linux 学习day3
  • 原文地址:https://www.cnblogs.com/hekuiFlye/p/9574361.html
Copyright © 2011-2022 走看看