社区
Delphi
帖子详情
父节点问题?
hj_cn
2001-09-22 03:10:01
如果我要添加一个子节点我如何以最快的速度判断它的父节点呢以便好正确添加,请赐教。
...全文
164
17
打赏
收藏
父节点问题?
如果我要添加一个子节点我如何以最快的速度判断它的父节点呢以便好正确添加,请赐教。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hj_cn
2001-09-23
打赏
举报
回复
二分法是如何分的能详细点吗?你一般是如何设计数据库和程序的呢?
BlueTrees
2001-09-23
打赏
举报
回复
如果要更快的话,可以建立平衡二叉排序树,不过这增大了空间开销,算法本质上也是二分法
BlueTrees
2001-09-23
打赏
举报
回复
二分法,不慢的,并非你说的一条一条的比较
hj_cn
2001-09-23
打赏
举报
回复
这样一条一条比较速度不是很慢吗在数据多的情况下)
Nizvoo
2001-09-23
打赏
举报
回复
我看我得学一下数据结构。
BlueTrees
2001-09-23
打赏
举报
回复
如果你指的是数据表中存放的是一棵树的,并且程序在读出数据以后从新构造成一棵树的话,你可以用以下的算法,这是我找到的最快的算法。
例子:
字段结构
id:记录本身的标志
FatherId:父节点的id
算法如下:
1、建立一个队列A和一个普通的线性表B
2、将所有的数据压入队列A,清空线性表B
3、从队列中取出一个记录,检查FatherId字段,如果为空(说明它是根节点),则压入B,并且生成一个节点,如果不空则在B中二分查找,找到则压入B(压入是要根据id排序的),并建立一个节点,正确的放到树中,如果未找到则压入A,
4、重复3直到A为空,此时,树已经被还原了。
以上只是简单说明,在数据库数据不正确的情况下会引起死循环
BlueTrees
2001-09-23
打赏
举报
回复
你学过数据结构没有,我举例说明一般的二分法查找
例如:有如下已经排序的数据2,6,9,10,11,14,15,20,23,26总共10个数据
如今要查找数据6的位置,10个数据我们取中间的也就是第5个或者是第6个,随便的我们取第5个数据11于6比较,6比11小,那么我们再在前半段中查询,就是2-10中总共4个数据,取中间的第2个数据是6,比较相等,那么就说明找到了,它的父节点也就是她的前一个数据2,若始终没有找到,比如查找5,出现这种情况的现象就是,当前的数据段只有1个数据了,并且不相等,那么就可以比较大小后插在这数据前面或者是后面。补充一点,如果数据是以链表的方式存储的,此方法不适用,此方法一般用于数组形式存放的数据组。
BlueTrees
2001-09-22
打赏
举报
回复
我明白你们的意思了,你们指的是位数,就是有几位,不过这是和比较大小等价的
hansonboy
2001-09-22
打赏
举报
回复
如果长度不是1,copy(node.text,0,length(node.text)-1-2)就是它的父节点了
BlueTrees
2001-09-22
打赏
举报
回复
当然要根据长度的,中间的含义是指记录总数的一半的附近的记录
Montaque
2001-09-22
打赏
举报
回复
根据长度不行吗?
BlueTrees
2001-09-22
打赏
举报
回复
方法,取中间的一个记录,比较大小,如果小则再取前半段的中间记录比较,如果大就取后面半段的(我指的升序排列的),如此周而复始,直到只有一个记录时,就可以决定插在哪儿了
hj_cn
2001-09-22
打赏
举报
回复
我还是不太懂什么中均匀分布的,但我的代码是这种顺序:
1
101
10101
1010101
201
20101
2010101
3
你说应使用哪一种方法比较好详细点好吗?或者你有没有这方面的例了发一个给我也可以的。谢谢!
BlueTrees
2001-09-22
打赏
举报
回复
那么你指的是一个排序的问题,这有很多经典的解决方案,数据结构的书上有1/3是讨论这类问题的,你可以看一下这类的书。
我有一个比较简单的方法,如果你的编码是均匀分布的,最好是用二分法插入,如果你不嫌麻烦的话可以用散列来处理,这样速度会快一些,不过这还要看你的数据的分布情况,才能决定是否合理
hj_cn
2001-09-22
打赏
举报
回复
GZ
hj_cn
2001-09-22
打赏
举报
回复
我只有编码和名称两个字段按的是编码排序,就是这样的。
BlueTrees
2001-09-22
打赏
举报
回复
这要看你是如何安排树的数据结构的,请更详细的说明好嘛!
查找html 元素的父元素,利用递归找出一个元素所有的
父节点
如果一个节点做了很多层嵌套,给出其中一个节点,那么如何找出它的
父节点
呢?又如何找出
父节点
的
父节点
呢?在js原生中提供了一个节点:.parentNode;而子元素获取父元素仅仅只需要childNode.parentNode;就可以了?
问题
是仅仅childNode.parentNode;只能找到子元素的亲身父亲,如果还有其他祖先元素是找不到的哦!肿么办?不要忘了,子元素的亲身父亲也是它父亲的子元素哦,...
jquery 获取
父节点
html,jquery 获取
父节点
在使用jquery时,很多时候都需要获取当前节点的
父节点
,包括直接
父节点
和祖先
父节点
。用的最多的方法是parent([expr])和parents([expr])。从方法的名字上就可以判断前一个方法是单数,也就是返回一个真正的
父节点
,后面是返回所有的祖先节点集合(不包含根节点)。假设需要获取当前节点的祖
父节点
(
父节点
的
父节点
),其有属性class=”pp”,那么获取的方法为:$('#cur').p...
Jstree子节点与
父节点
的级联选择修改
文章来源于用Jstree做权限组设置时的BUG 主要
问题
: 1. 选定
父节点
时其子节点默认全选? 2. 跨过
父节点
(展开所有节点)选定子节点时其其
父节点
的
父节点
的
父节点
的…
父节点
不自己动选定? 但是作为一个成熟的权限组,我们要的是它: 1. 选定
父节点
时只选定当前节点,不选定其子节点 2. 跨过
父节点
(展开所有节点)选定子节点时,自动选定其
父节点
的
父节点
的
父节点
的…
父节点
SO 文章由来 解...
oracle树形结构由子节点递归得到
父节点
在oracle中如何从子节点记录向
父节点
上溯? 比如有一个表: guid parentguid 1 0 2 1 3 1 4 2 5 2 6 5 7 5 8 7 我们从GUID为1根据parentguid关系可以查出该GUID下的所有
二叉树的最近公共
父节点
Java寻找二叉树的最近公共
父节点
问题
思路代码
问题
给定一棵二叉树和两个节点,找出这两个节点最近的一个公共
父节点
。 给出的两个节点一定在树中存在; 结点的值是随机的,可能会重复,结点中只包含left和right两个子结点,没有指向
父节点
的parent。 此题可参考LeetCode 236。 思路 考虑两个结点的存在情况: 一个节点为是另外一个节点的子或孙子节点,此时只要判断root节点等于...
Delphi
5,930
社区成员
262,938
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章