读书人

Tree 构造的存储与反转

发布时间: 2013-03-28 10:20:24 作者: rapoo

Tree 结构的存储与反转

作为一个简单的存储我们只需要将id,name,parent_id 存储起来。当然存储很简单,利用递归遍历树结构,存储所有的node就OK.

如果你的tree是动态加载,那么不存在什么问题,你只要根据parent_id 进行检索,进而渲染node就可以了,如果ui要一次将所有的node渲染上去,那么我们该如何将这一条条数据构建成一个tree model?

当然本办法还是有的,我们利用递归也能实现代码 如下:

?

?

private static Node popularTree(Map<Integer,Node> nodesMap,List<Node> nodesList,Node root){for(Node node:nodesList){if(node.getParent_id().equals(root.getId())){root.getChildren().add(node);}else if(nodesMap.containsKey(node.getParent_id())){nodesMap.get(node.getParent_id()).getChildren().add(node);}}return root;}

?这样的话我们就仅仅遍历了2次,但是具体第一种方法会执行多少个循环我也不知道。

?

小记:在我们平时的编程中不一定要按照实际的一些想法来组织数据,我们需要从多个角度来思考,这样话我们的代码执行效率也会有所提高。

读书人网 >编程

热点推荐