ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 31379|回复: 103

[讨论] 来个难度高点的:用最快的方法找出一个树内距离最远的两个节点间的距离

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-11-6 09:55 | 显示全部楼层 |阅读模式
本帖最后由 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。

直接提交代码或是附件。


随机题目生成代码,供参考用:
  1. Function RandomTree$()
  2.     Dim nCnt%, i%, nInd%, nLast%, nChildNumMax%
  3.     nCnt = Int(Rnd * 10000) + 1
  4.     nChildNumMax = 10
  5.     nInd = 1: nLast = 1: RandomTree = CStr(nCnt)
  6.     Do
  7.         For i = 1 To Int(Rnd * nChildNumMax) + 1
  8.             nLast = nLast + 1
  9.             If nLast > nCnt Then Exit Do
  10.             RandomTree = RandomTree & ";" & CStr(nInd) & "," & CStr(nLast)
  11.         Next
  12.         nInd = nInd + 1
  13.     Loop
  14. End Function
复制代码








评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-6 15:24 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这个没有人吗?难道是因为没人给技术分?

TA的精华主题

TA的得分主题

发表于 2014-11-6 16:04 | 显示全部楼层
楼主申请做竞赛区版主吧。我顶你:-D

点评

层主申请做竞赛区版主吧。我顶你:-D  发表于 2014-11-19 16:35
不干~  发表于 2014-11-6 19:55

TA的精华主题

TA的得分主题

发表于 2014-11-6 21:39 | 显示全部楼层
代码不会写,思路倒是有了,
左深度+右深度。

题目的大概意思是这棵树吧:

         1
      /     \
     2       3
    /
   4

1的左深度为2,
右深度为1,、
所以为2+1 = 3 ?

点评

唔,10000个节点的树,多想想?  发表于 2014-11-6 21:53

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-6 22:04 | 显示全部楼层
有人参与讨论,我就发提示哈。

1,节点处分支数量不定

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-7 12:17 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-8 00:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
3、距离根节点最远的两个节点间是否距离最远?

点评

是否一定最远?否  发表于 2014-11-14 20:26

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-8 14:09 | 显示全部楼层
修改了一下题目,加了个注,加了几个括号......

4、谁是根节点?

点评

树形结构,根结点是固定的。除非你自己有新的定义  发表于 2014-11-14 20:27

TA的精华主题

TA的得分主题

发表于 2014-11-12 20:08 | 显示全部楼层
提个问题,顺便顶顶贴:

“1”是否一定是最高顶点?父节点是否一定比子节点的数字小?



TA的精华主题

TA的得分主题

 楼主| 发表于 2014-11-13 00:26 来自手机 | 显示全部楼层
wcymiss 发表于 2014-11-12 20:08
提个问题,顺便顶顶贴:

“1”是否一定是最高顶点?父节点是否一定比子节点的数字小?

见提示4,呵呵~
就知道会有人有这问题~
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-19 12:26 , Processed in 0.052045 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表