`

从数据库结果集查找树的根节点

    博客分类:
  • Java
J# 
阅读更多

由于在查询出的每条记录里,都有unit_id和par_unit_id,所以只需要找出在unit_id里没有的par_unit_id,则该条记录为根节点,代码如下:

public List getRootUnits2(List list){
		List rootList = new ArrayList();
		for(int i=0; i < list.size(); i++){
			boolean isRoot = true;
			for(int j=0; j< list.size();j++){
				Map parMap = (Map)list.get(i);
				Map map = (Map)list.get(j);
				if(StringUtils.equals((String)parMap.get("par_unit_id"), (String)map.get("unit_id"))){
					isRoot = false;
					break; //找到了父节点
				}
			}
			if(isRoot){
				rootList.add(list.get(i));
			}
		}
		return rootList;
	}

 

 

分享到:
评论

相关推荐

    读取数据库 动态生成树节点

    `TreeView.Nodes`集合用于存储根节点,而每个`TreeNode`也都有自己的子节点集合,用于递归添加子节点。 要实现动态生成树节点,首要任务是与数据库建立连接。在C#中,这通常通过ADO.NET库来完成。我们可以使用`...

    二叉查找树的最大最小以及任意数查找

    在上面的树中,若要查找数值6,从根节点5开始,因为6大于5,我们转向8,但6小于8,所以我们转向8的左子节点,即4,但6仍然大于4,我们继续向左子节点,但是4没有左子节点,说明6不在树中。 二叉查找树的这些操作在...

    二叉查找树C++实现

    查找操作同样从根节点开始,根据值的大小决定搜索方向: ```cpp TreeNode* search(TreeNode* root, int val) { if (root == NULL || root-&gt;val == val) return root; if (val &lt; root-&gt;val) return search(root-...

    关系数据库表存储树形结构的方法

    检索方法涉及从数据库表中查找特定节点的子节点或父节点。检索子节点时,可以通过临时表来模拟队列操作,逐层向下检索。检索父节点则直接通过指针字段进行。 插入新节点时,只需知道其父节点的编号,并将其作为新...

    二叉查找树完整C++代码

    1. **插入操作**:从根节点开始,根据键值与当前节点的比较结果决定向左子树还是右子树递归搜索,直到找到一个空的位置插入新节点。 2. **查找操作**:同样从根节点开始,如果键值等于当前节点的键值,则找到;若...

    数据库实验B+树(附带b树)

    对于查找操作,从根节点开始,根据键值比较选择正确的子节点,直到找到目标叶子节点。插入操作需要找到合适的位置插入新的键值对,可能涉及到节点的分裂。删除操作则要处理空节点和键值的合并,以保持树的平衡。 ...

    最优二叉查找树

    一旦所有子树的成本都被计算出来,算法便可以通过递归地调用`constructOptimalBST`函数,根据动态规划过程中记录的最优根节点选择,构建出整个最优二叉查找树的结构。在构建过程中,函数会打印出树的结构信息,包括...

    动态创建树形控件数据库配置节点

    在创建树形控件时,我们从根节点开始,然后对每个节点递归地查找其子节点,直到遍历完所有子级。以下是一个简单的步骤概述: 1. **数据获取**:从数据库查询根节点(通常是父节点ID为null或特定值的节点)。 2. **...

    二叉查找树的插入,删除,查找

    二叉查找树(Binary Search Tree,BST)是一种特殊类型的二叉树,它的每个节点都具有以下特性: ...在实际应用中,二叉查找树常用于数据库索引、排序等问题,因为它们提供了一种动态维护有序数据集的方法。

    数据结构实验报告-查找-B-树基本操作的实现 实验报告(含完整代码及测试)

    4. **层次遍历**:层次遍历按照B-树的层级顺序输出所有节点,从根节点开始,逐层向左右输出。输出信息包括节点的位置、关键字数量以及关键字本身。 **实验内容及要求**: 实验要求定义和实现B-树的上述操作,并通过...

    递归显示数据库目录树+BBS

    递归显示这个树结构,意味着从根节点开始,逐级遍历并展示每个节点及其子节点,直到所有层级都被遍历完毕。 在SQL中,实现递归显示数据库目录树的一种常见方法是使用自连接。假设我们有一个名为`database_objects`...

    数据库中B+树索引的原理

    2. **查找操作**:查询时,根据键值从根节点开始逐层向下比较,直到找到目标叶子节点。非叶子节点的查找仅用于定位子节点,实际数据获取在叶子节点完成。 3. **更新与删除**:更新操作涉及到键值的替换,可能需要...

    二叉排序树和折半查找

    查找某个值时,同样从根节点开始,如果目标值等于当前节点的值,则查找成功;如果目标值小于当前节点的值,那么在左子树中继续查找;如果目标值大于当前节点的值,那么在右子树中继续查找。若遍历至叶子节点仍未...

    二叉查找树BST,可以看看

    在BST中查找一个元素,从根节点开始,如果待查找的元素小于当前节点,就搜索左子树;如果待查找的元素大于当前节点,就搜索右子树。这个过程一直持续到找到目标元素或者搜索到空节点为止。 ### 三、插入操作 插入...

    二叉查找树

    2. **查找操作**:在二叉查找树中查找一个特定值的节点,也是从根节点开始: - 如果当前节点的值等于目标值,查找成功。 - 如果目标值小于当前节点的值,向左子树继续查找。 - 如果目标值大于当前节点的值,向右...

    二叉查找树java

    在二叉查找树中查找特定值的节点,同样从根节点开始,根据节点值与目标值的比较来决定是向左子树还是右子树搜索。 ```java public TreeNode search(TreeNode root, int val) { if (root == null || root.val == ...

    动态从数据库中绑定TreeView节点

    // 添加根节点 TreeView1.Nodes.AddRange(treeNodes.Where(n =&gt; n.ParentId == null).Select(n =&gt; n).ToArray()); // 递归添加子节点 foreach (TreeNode node in treeNodes) { if (node.ParentId != null) { ...

    B-树和B+树的应用:数据搜索和数据库索引

    在B-树中查找某个关键字,从根节点开始,与当前节点的关键字进行比较,如果目标关键字在当前节点的关键字范围内,就进入相应的子节点继续查找,直到找到目标关键字或到达叶节点。例如,查找47,先在根节点找到35,...

    BST树节点的插入,删除和查找

    1. 如果BST为空,新节点将成为根节点。 2. 如果新节点的键值小于当前节点的键值,递归地在当前节点的左子树中插入。 3. 如果新节点的键值大于当前节点的键值,递归地在当前节点的右子树中插入。 4. 当找到一个空位置...

    二叉查找树简介

    在二叉查找树中,键的值满足以下规则:左子树中的所有键都小于根节点的键,而右子树中的所有键都大于根节点的键。这种特性使得二叉查找树在查找、插入和删除操作上有较高的效率,特别是当树是平衡的时候。 1. **AVL...

Global site tag (gtag.js) - Google Analytics