首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

求树的层数的有关问题。

2012-02-26 
求树的层数的问题。。一棵树有n个节点,其中1号节点为根节点。输入第一行是整数n,表示节点数后面若干行,每行两

求树的层数的问题。。
一棵树有n个节点,其中1号节点为根节点。


输入
第一行是整数n,表示节点数

后面若干行,每行两个整数a b,表示b是a的子节点。

输出
求这棵树的层数(根节点为第1层)

样例输入
5
1 2
1 3
3 4
3 5
样例输出
3

class Tree<T> {
public Tree(T d) {
this.data = d;
}
Tree<T> parent=null;
T data = null;
List<Tree> children = new Vector<Tree>();
public int level(){
ListIterator<Tree> it = children.listIterator();
int level=0;
while(it.hasNext()){
Tree p = it.next();
int plevel=p.level();
if(plevel>level)
level=plevel;
}
return level+1;

}
}


[解决办法]
格式看的眼睛痛啊
感觉用递归写比较好看
public int level(TreeNode tn){
if(tn == null){
return 0;
}
return Max(level(tn.left), level(tn.right)) + 1;
}
[解决办法]
建议用邻接表建个图,先找到入度为0的点,即根节点,然后递归搜索邻接表,记录深度,更新最大值就好了
[解决办法]
有更好的结构吗!

热点排行