标题:子节点和父节点的问题。。。。
只看楼主
xinyu22
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-11-5
结帖率:55.56%
已结贴  问题点数:0 回复次数:9 
子节点和父节点的问题。。。。
父节点  子节点   数量
A     a1     1
A     a2     2
A     a3     3
a1    b1     4
a1    b2     5
a2    c1     6
a2    c2     7
c2    d3     8
。。。。。。。。   
从上面的数据中得到:  
父节点.子节点    数量
A.a1               1
A.a1.b1            4
A.a1.b2            5
A.a2                2
A.a2.c1             6
A.a2.c2             7
A.a2.c2.d3          8
..............   
数据很多,一直这样展下去。直到没有下一级为止。

麻烦大家帮忙看看,给个思路,怎么实现啊?
搜索更多相关主题的帖子: 数据 
2011-01-13 15:48
xinyu22
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-11-5
得分:0 
又不明白的地方,留言给我,我再解释一下。怎么没有贴啊
2011-01-13 17:19
vbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:352
专家分:147
注 册:2006-12-30
得分:4 
从你的输出结果来看这是一个递归的问题,下面是我的一些想法:
既然是递归首先你要找到最顶端的父节点。不知你的数据是否如你给出的那样有顺序。
找父节点可以用两个数组N*1的分别存储数据的第一列和第二列,进行排序后一个个进行比较比到不同的那个就是顶端的父节点。
然后从父节点开始你的递归输出。(这个递归函数怎么写应该也不难因为规律比较明显)
这样写数据量太大可能程序会慢。

清远鹏程万里人才网:[url=http://www.]http://www.[/url]zq.,qy.
2011-01-13 17:35
xinyu22
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-11-5
得分:0 
目前我已经找到没有做子节点的所有父节点的sql语句。也就是我已经找到所有的父节点(根) 啦。。。。。。再怎么解决啊。请大家指点。
我也考虑到用递归,但是这个条件把给我弄的头痛,到最后还是一头雾水。
所有的父节点放在一个dataview 中,然后来遍历.再用过滤条件筛选出每一个子节点,再把这个子节点作为父节点 ,找到一个dataview 。再遍历,根据判断条件(晕了,这里都不知道怎么写判断条件也不知道什么时候返回值)

还有其他的办法吗?  
2011-01-14 11:13
vbc
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:352
专家分:147
注 册:2006-12-30
得分:0 
递归传递的参数就是当前节点的一串分节点的字符,结束的条件就是找出了所有的当前节点的子节点(恐怕只有每次遍历了)。
比如当前节点是a1,那么要传递过来的参数就是A,结束的条件就是找到了所有以a1为父节点的数据(a1    b1     4和a1    b2     5)

清远鹏程万里人才网:[url=http://www.]http://www.[/url]zq.,qy.
2011-01-14 13:52
yms123
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:4 
树型结构的操作可以使用递归方法来解决
http://topic.
递归算法参考
2011-01-14 13:55
xinyu22
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-11-5
得分:0 
可以在递归里再继续使用循环吗?
2011-01-14 16:48
yms123
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 
以下是引用xinyu22在2011-1-14 16:48:35的发言:

可以在递归里再继续使用循环吗?
可以,但循环嵌套的不宜过多会使程序运行缓慢
2011-01-15 01:00
xinyu22
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-11-5
得分:0 
父节点和子节点的问题(续)
我在递归里用了两个嵌套的循环,现在我基本上把循环的条件给找出来了。但是现在面临的另一个问题: 要把这些值存放到那里啊?  我尝试存放到数组中,但是全局的数组怎么定义啊?    还有就是数组的长度问题? 这是个动态的数组,但是动态数组也有长度啊。我就纳闷了!

怎么解决啊?还请大家帮帮啊.
2011-01-16 10:33
yms123
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
得分:0 
以下是引用xinyu22在2011-1-16 10:33:12的发言:

我在递归里用了两个嵌套的循环,现在我基本上把循环的条件给找出来了。但是现在面临的另一个问题: 要把这些值存放到那里啊?  我尝试存放到数组中,但是全局的数组怎么定义啊?    还有就是数组的长度问题? 这是个动态的数组,但是动态数组也有长度啊。我就纳闷了!

怎么解决啊?还请大家帮帮啊.
既然是动态数组又在里,那么就可以使用ArrayList这个.NET里的动态数组对象,而且ArrayList本身就是对象所以可以定义为static的全局对象

[ 本帖最后由 yms123 于 2011-1-16 14:32 编辑 ]
2011-01-16 14:31



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-331039-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024105 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved