zoukankan      html  css  js  c++  java
  • 树的高度

    题目描述

    现在有一棵合法的二叉树,树的节点都是用数字表示,现在给定这棵树上所有的父子关系,求这棵树的高度

    输入

    输入的第一行表示节点的个数n(1 ≤ n ≤ 1000,节点的编号为0到n-1)组成,下面是n-1行,每行有两个整数,第一个数表示父节点的编号,第二个数表示子节点的编号

    输出

    输出树的高度,为一个整数

    #include <iostream>
    #include <vector>
    using namespace std;
    int m = -1;
    void getH(vector<vector<int> > tree,int p,int H){
        if(H > m){
            m = H;
        }
        int count = 0;
        for(int i = 0; i < tree.size(); i++){
            if(tree[i][0] == p){
                count++;
                getH(tree,tree[i][1], H + 1);
                if(count == 2)
                    break;
            }
        }
    }
    int main()
    {
        int n,a,b;
        cin >> n;
        vector<vector<int> > tree(n-1,vector<int>(2,0));
        for(int i = 0; i < n - 1; i++){
            cin >> a >> b;
            tree[i][0] = a;
            tree[i][1] = b;
        }
        getH(tree,0,1);
        cout << m << endl;
        return 0;
    }

    需要加入count来判断当前层是否已经满足二叉树了

  • 相关阅读:
    linux下修改mysql密码
    会话跟踪技术之——cookie
    servlet之注册登录(简写)
    java服务端和用户端
    JavaBean和jsp的开发模型
    session的用法
    jsp元素
    servlet
    ServletContext对象统计在线人数
    图片站点服务
  • 原文地址:https://www.cnblogs.com/wktwj/p/9669717.html
Copyright © 2011-2022 走看看