多语言展示
当前在线:1030今日阅读:39今日分享:10

怎么去拿树状结构的数据

我们知道在我们处理树状结构的时候,一般都需要一些方法才能去拿其下面的子树的子树的上面的果实,数据我称之为果实。
工具/原料
1

用递归远离就可以实现出来

2

说白了就是for循环分别去去每一级别下的子集

方法/步骤
1

先写一个方法,去拿一颗树的下面子分支数据,子分支数据分为0个分支,或者说N个分支。

2

解释上面的方法,上面的方法比如说是showTree()一个节点的下面,一种情况是有数据,此数据也就是子节点可能是一个,或者是多个那就是一个集合啦,那我们再次遍历此集合的每一个对象A,B,C给拿出来,然后再把A,B,C分别陆续的传递到showTree()方法的参数中,再此去查,还有一种情况好似,没有子节点啦,那我们只需要打印出来咱这个节点的名字,Id,描述什么的参数就可以拉,这个根据你自已的需求来拿里面的数据。---循环着调用自已。比如下图中的语句,就是不断的判断循环体的,只要满足就会执行下一步的。

3

那么,要想得到所有的树,就得这样写了

4

第2种实现方式,看下面代码

5

这种实现方式就是你直接传递一个集合给你的方法,然后遍历你的集合,对集合中的每一个对象进行判断,如果有子集合,那就再此传递到你的这个方法中,这个方法的好处是实现了一种简单的代码,但功能上并未消减的,只需一个循环体即可,就像吃苹果,一个苹果已经满足了我的需求了,不用两个苹果,对吧。

6

对此方法体,大家可以根据自已的需求进行分析它,并添加自已想要的输出格式,数据结果样式什么的,我的是添加了一个变量prefix,它的作用就是给我的输出结果每条数据前面加上个空格,或者加上个分层的结果。

注意事项
1

说白了,就是根据拿一个顶节点的方法,得到这一个顶节点下面所有的分支,然后再根据,你的特有方法去拿所有的树木,不仅仅是顶节点,还是子节点,统统用一个方法得到,最后得到的这么多树用一个FOR循环把一个个给遍历出来,最后用你写的一个方法:通过传递一个方法的顶节点去那其下面的子节点,分别去找这一个顶节点下面的子数据,找到玩了,回来再根据第2个从所有集合树中得到的节点再次传递刚才你调用的节点,形成了无限循环递归下去的方法

2

要有2个FOR循环,最后通过我们的分析,用一个For循环就可以解决了我们的问题

推荐信息