请教一个有效率把顺序链表转为树状结构的算法(最终要实现在TREEVIEW里)

huayuxing 2008-11-06 10:42:57
我有一个链表如下(5,6),(5,7)(5,9)(6,10)(6,12)(8,13)(5,14)(10,15).......可能会有几W甚至几十W之多
链表以结构体的形式存里内存数据流中
级数可能会有
最终实现在treeview上是
5-6
6-10
-15
6-12
7.......
9........
14....
8-13
......

不知道有什么算法能够有效率的实现
...全文
76 点赞 收藏 11
写回复
11 条回复
CaiBirdy 2008年11月12日
我觉得你应该从取得的数据入手,多次取得后,对比下大概有什么规律,比如是不是有递增的趋势什么的,或者是否有分段的现象,之后再采用相应的方法。。
据个例子:
回复 点赞
gwhdaxia 2008年11月10日
只循环一次把树建起来应该是最快的,
回复 点赞
huayuxing 2008年11月10日
9楼的兄弟,站着说话不腰疼吗,呵呵,谁都知道只循环一次当然好了,要把解决的方法说出来才行啊!
回复 点赞
ideation_shang 2008年11月09日
在生成链表的时候 最好顺便做个索引,比如 (5,*)、(6,*)、(n,*)分开存储,在你生成树的时候效率就高多了
回复 点赞
huayuxing 2008年11月09日
肯定是一级一级的加的,但至少也要搜索(从头到尾)才知道哪些是一二级的,而且在生成连表的时候肯定是无序的
回复 点赞
yeah920 2008年11月07日
没搞过。帮顶。
回复 点赞
CaiBirdy 2008年11月07日
不过首先你的链表在生成时要先自动排好顺序,不然没效率,难度也高
回复 点赞
CaiBirdy 2008年11月07日
几十W。。只能一级一级添加吧,不可能一下子全添加的。。可以借鉴一下shelltreeview,
回复 点赞
huayuxing 2008年11月07日
自己顶一下
回复 点赞
huayuxing 2008年11月06日
兄弟,几十W做递归,做死人了
回复 点赞
mdejtod 2008年11月06日
递归,呵呵..
回复 点赞
发动态
发帖子
语言基础/算法/系统设计
创建于2007-08-02

3418

社区成员

3.3w+

社区内容

Delphi 语言基础/算法/系统设计
社区公告
暂无公告