假如数据表中的数据呈现多叉树的关联关系,当需要搜索A点,以及与A点存在关联关系的的数据时,
算法设计可以参考以下思路:
1、搜索子节点以及搜索父节点分开;
2、设计搜索子节点递归算法的时候根据具体业务需求设置递归的层级,即你所需要搜索数据的深度;
3、设计搜索父节点的递归算法的时候,需要考虑其父节点的其他子节点,在符合搜索深度的情况下,
将所有关联点搜索出来。
思路如上,现在我们设计一个大致的递归算法骨架:
1、子节点搜索算法设计
//递归搜索子元素
public int findChildren(int n,String parents,List<UserVO> childrenList){
//首先需要传入的基本参数 : n(需要搜索的深度,本例子设置为5)
// parents (寻找子节点的条件,要根据父节点与子节点关联确定)
//childrenList (存放所有子节点的容器)
List<UserVO> cl = new ArrayList<UserVO>();//这里是存放下一层级的子节点的容器