父节点问题?

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
  • 打赏
  • 举报
回复
这要看你是如何安排树的数据结构的,请更详细的说明好嘛!

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧