|
本帖最后由 lee1892 于 2014-11-14 14:56 编辑
没有技术分的题目,大家会参与吗?欢迎跟贴报名呀~
参与方式:
1、11月21日、22日两天中回帖答案,请不要在此之前或之后提交答案,以免参考他人答题办法之嫌。
2、没有最快,只有更快。大家一起来比较谁的速度最快,有分的捧个分场,有花的捧个花场。
参与的人既是答题者也是评分者!
题目:
在一个树数据结构中,找出相距最远的两个节点的距离(由一个节点到另一个节点所经过的不重复的边的数量)。
条件:
1、节点数量 N,0<N<=10000
2、输入,一个以分号和逗号相隔的字符串(无多余的任何其它字符),结构如下
a、第一个分号左侧为树中节点的数量 N
b、其余分号分隔的字符串,以逗号分隔的相连接的两个节点编号(节点编号为自 1 始至 N 止,编号对无重复)
3、输出,距离值
注:所谓树,对其中任一节点,仅有一个父节点,或有数个子节点,而与兄弟节点并不相连。所以不存在 1<->2, 1<->3, 2<->3 这样的可能。
例子:
输入
4;1,2;1,3;2,4
输出
3
要求:
编写函数:
Public Function LongestPath(ByVal strTree As String) As Long
...
End Function
有需要外部变量、函数过程、自定义类型等等,请都写为Private。
直接提交代码或是附件。
随机题目生成代码,供参考用:- Function RandomTree$()
- Dim nCnt%, i%, nInd%, nLast%, nChildNumMax%
- nCnt = Int(Rnd * 10000) + 1
- nChildNumMax = 10
- nInd = 1: nLast = 1: RandomTree = CStr(nCnt)
- Do
- For i = 1 To Int(Rnd * nChildNumMax) + 1
- nLast = nLast + 1
- If nLast > nCnt Then Exit Do
- RandomTree = RandomTree & ";" & CStr(nInd) & "," & CStr(nLast)
- Next
- nInd = nInd + 1
- Loop
- End Function
复制代码
|
评分
-
2
查看全部评分
-
|