1、用父节点的left更新,每次更新都会更新与其同级的子节点及 其父节点 及与其父节点同级的节点
if has parent
pleft = parent left
update left = left+2 where left >pleft
update right = right+2 where right>pleft
insert left=pleft +1 ,right = pleft +2
else
insert into left = max(right) +1, right = left +2
事例:
父节点1 : 1 2
插入子节点:父节点1为 1 4 ,子节点1为 2 3 ;
插入子节点:父节点1为 1 6 ,子节点1为 4 5,子节点2为 2 3;
插入父节点:父节点1为 1 6 ,子节点1为 4 5,子节点2为 2 3;父节点2为7 8;
插入子节点:父节点1为 1 8,子节点1为 4 5,子节点2为 6 7,子节点3为2 3;父节点2为 9 10;
2、用父节点的right更新,每次更新其父节点 及与其父节点同级的节点(建议使用)
if has parent
pright = parent right
update left = left+2 where left >= pright
update right = right+2 where right>= pright
insert left=pright ,right = pright + 1
else
insert into left = max(right) +1, right = left +2
事例:
父节点1 : 1 2
插入子节点:父节点1为 1 4 ,子节点1为 2 3 ;
插入子节点:父节点1为 1 6 ,子节点1为 2 3,子节点2为 4 5;
插入父节点:父节点1为 1 6 ,子节点1为 2 3,子节点2为 4 5;父节点2为7 8;
插入子节点:父节点1为 1 8 ,子节点1为 2 3,子节点2为 4 5,子节点3为6 7;父节点2为 9 10;
相关推荐
TreeView Treenode 操作实例,从数据库中读出类别信息,把类别树写入数据库,节点更名排除重复等,包内附有建立数据表的脚本.
JAVA 拥有层级的List数据转换树形层级结构实体,内含转换方法
扩展WPF的TreeView,完成数据绑定和拖拽功能。 WPF看了很长时间了,但一直没怎么动手实践,正好任务需要,扩展了WPF的标准TreeView控件,并作为基础控件,支持下面的功能: 数据绑定 拖拽
ztree最简单的树--标准JSON 数据,1、setting 配置信息说明2、treeNode 节点数据说明
最简单的树 -- 标准 JSON 数据 1、setting 配置信息说明 普通使用,无必须设置的参数 与显示相关的内容请参考 API 文档中 setting.view 内的配置信息 ... 其他属性说明请参考 API 文档中 "treeNode 节点数据详解
VC++常用的数据结构类源码 node.h: 普通链表结点 dnode.h: 双向循环链表结点 treenode.h: 二叉树结点 avltreenode.h: AVL 树结点 array.h: 安全数组,可自动增长大小(随机访问,但扩充时效率低) linkedlist.h...
C#数据结构树的查询实例源码TreeView空间的应用实例源码 foreach (TreeNode node1 in this.treeView1.Nodes[i].Nodes) { if (node1.Text == textBox2.Text.Trim()) { treeView1.SelectedNode = node1; ...
如下数据结构: typedef struct TreeNode { char c; TreeNode *leftchild; TreeNode *rightchild; } 请实现两棵树是否相等的比较,相等返回0否则返回其它值.并说明你的算法复杂度 int CompTree(TreeNode* ...
一套个人写的tree的数据结构,使树形跟简单,方法名称 public TreeNode getTreeData(String tableName,String nodeIdStr,String nodeNameStr,String nodePidStr,String nodeIndexStr,String nodeStateStr,String ...
随手写了一个TreeNode,顺道实现了个对应的内存缓存框架,适用于数据量不大,更新也少但是反复要读的数据,比如模块信息/组织结构/频道栏目/权限等。 PS:Java是可以直接操作内存的,只是现在的框架整合让人退化了。...
WPF的TreeView不像WinForms的TreeView那样,通过TreeNode实现树型节点。WPF的TreeView实现起来,我感觉有点像VM(View-Model)模式,就像WinForms中的DataGrid,控件负责显示,数据在DataTable中。那么我们在实现...
Cocoa下NSOutlineView的使用例子,如何多根显示
let treeNode = []; orgtree.map((ele, index) => { treeNode.push( {this.renderChildOne(ele)} ) }) return treeNode; }; //一级子节点 renderChildOne(ele) { let childLevel1 = []; if(ele.data){ ...
Tree();//构造树 treenode *get_root();//得到根结点 树的基本函数的实现
数据结构与算法中二叉树子结构的详解 需求 输入两棵二叉树A,B,判断B是不是A的子结构。(ps:我们约定空树不是任意一个树的子结构) 树的描述: class TreeNode { int val = 0; TreeNode left = null; ...
一次性加载大数据量 1、大数据量加载说明 ◦1)、zTree v3.x 针对大数据量一次性加载进行了更深入的优化,实现了延迟...3、treeNode 节点数据说明 ◦对 节点数据 没有特殊要求,用户可以根据自己的需求添加自定义属性
(3)data为数据,包含了BaseRecord(基础记录,这里只有一个属性,就是要分类的属性Boolean的,其他数据库实体都应该继承该类) HummanAttrRecord(描述用户的属性类,包括收入、年龄、是否为学生、信用评级)、 ...
在上述代码中,我们首先定义了一个二叉树结点的数据结构`TreeNode`,其中包括数据域`data`、左子树指针`left`和右子树指针`right`。然后,我们实现了创建二叉树结点的函数`createNode`。接下来,我们定义了双序遍历...
二、需要用的数据结构以及实现思路 需要用到二叉树、HuffMan树、递归等数据结构 二叉树 在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子 树”(right ...
二叉树的链式数据结构struct tree /* 声明树的结构 */ { struct tree *left; /* 存放左子树的指针 */ int data; /* 存放节点数据内容 */ struct tree *right; /* 存放右子树的指针 */ }; typedef struct tree ...