| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 416 人关注过本帖
标题:一个二叉树的问题,求指点指点(第一次发帖,见谅)
只看楼主 加入收藏
flfw1314
Rank: 2
等 级:论坛游民
帖 子:14
专家分:43
注 册:2012-12-2
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
一个二叉树的问题,求指点指点(第一次发帖,见谅)
描述
又是晴朗的一天,小明在吃完午饭回宿舍的路上,看到了一颗高高的树,一时兴起,想看看这颗树有多高,为了简单起见,小明将树看成一棵二叉树,二叉树的根的高度看成1,
现在的问题就是给定一棵二叉树,请你计算这棵二叉树的高度(即这棵二叉树一共有几层)。
输入
多组测试数据,处理到文件结尾。
每个测试数据第一行输入一个整数n,代表这个二叉树的节点个数,接下来有n-1行,每一行有2个整数s和e,代表节点s是e的父亲节点。规定编号为1的点为根节点。
不保证测试数据为完全二叉树。
10000>=n>0
n>=s,e>0
输出
输出占一行,代表这棵二叉树的高度。
样例输入
3
1 2
1 3
4
3 4
1 2
1 3
样例输出
2
3
这是题目,下面是我的代码,一直wrong,大神帮忙看看,谢谢。
说说我的思路;算并查集的思想吧,先将n个节点初始化为0,之后只要输入两个数x,y,就将y并到x里。。比如3个节点,开始时f[1]=0,f[2]=0,f[3]=0;输入1,2就有f[3]=1;再输入1,3就有f[2]=1;这是有f[1]=0;f[2]=1,f[3]=1;之后再对f[]数组排序,之后找到里面有多少个不同的数就说明有多少个数加1层。。描述的不大清楚,语文拙计。。。望大神指点一二吧。。
程序代码:
#include<stdio.h>
int f[10002];
int main()
{
    int i,j,k,n,x,y,tem,num;
    while(scanf("%d",&n)!=EOF)
    {
        num=0;
        for(i=1;i<=n;i++)
        f[i]=0;
        num=1;
        for(i=0;i<n-1;i++)
        {
            scanf("%d%d",&x,&y);
                f[y]=x;

        }
        for(i=1;i<n;i++)
        {
            k=i;
            for(j=i+1;j<=n;j++)
                if(f[j]<f[k])
                    k=j;
                if(k!=i)
                {
                    tem=f[i];
                    f[i]=f[k];
                    f[k]=tem;
                }
            
        }
        for(i=1;i<n;i++)
        {
            if(f[i]!=f[i+1])
            num++;
        }
        printf("%d\n",num);


    }
return 0;
}


[ 本帖最后由 flfw1314 于 2013-6-17 21:38 编辑 ]
搜索更多相关主题的帖子: 二叉树 
2013-06-17 21:20
雪狼MJ
Rank: 8Rank: 8
来 自:甘肃
等 级:蝙蝠侠
威 望:4
帖 子:267
专家分:853
注 册:2012-5-27
收藏
得分:10 
啊。。。。。。小明来了。。。。。。快跑啊。。。。。。

Edsger Dijkstra:算法+数据结构=程序
2013-06-17 22:53
flfw1314
Rank: 2
等 级:论坛游民
帖 子:14
专家分:43
注 册:2012-12-2
收藏
得分:0 
大神给点意见的、、、、
2013-06-17 22:54
犿蚂
Rank: 2
等 级:论坛游民
帖 子:29
专家分:23
注 册:2013-4-24
收藏
得分:10 
这个用队列好做些吧,
从18行开始的那个大循环是用来排序的吧

[ 本帖最后由 犿蚂 于 2013-6-18 08:50 编辑 ]
2013-06-18 08:27
快速回复:一个二叉树的问题,求指点指点(第一次发帖,见谅)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045521 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved