关于无根树的一道编程题,求大神来呀

图片说明

【问题描述】
2.输入一棵无根树(连通无回路图),
a)输出该树的叶子节点数。
b)输出该树的直径(最长的路径)长度及重心(直径上的中间节点,可能是1个或2个)。
树结构从文件输入,路径为:D:\test\tree.txt,格式如下:

NodeNum=9
0:1
1:0,2,5,6
2:1,7
3:2
4:5
5:1,4
6:1
7:2,8
8:7

以上为文件内容,右图(图不知道上传没有)为对应的树结构。
输出为:a) 叶子节点数: 5
b) 直径长度: 5, 重心节点:1,2

                    一点思路也没有【大哭】【大哭】【大哭】
                    还是喜欢二叉树唉

感觉整个人被掏空了,瞬间怀疑人生。

大神大神你快来,你快来,你快来......快来......啊

果然没有人气啊,唉,up up up

叶子结点(无向边的树):只有一个点与之连接
注意特判两个点情况

直径:你就这样,先瞎鸡儿找一个点,然后遍历全图,
离该点最远的便是直径一端点
(想想为什么)

从这个点再遍历一遍,找离它最远的,就是直径另一端点。路径的话,bfs瞎鸡儿开个队列就行

求C币啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊