| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1160 人关注过本帖
标题:我写了一个多路查找的算法,请各位帮我看看啊!
只看楼主 加入收藏
kappa314
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2004-10-9
收藏
 问题点数:0 回复次数:6 
我写了一个多路查找的算法,请各位帮我看看啊!
图片附件: 游客没有浏览图片的权限,请 登录注册

搜索更多相关主题的帖子: 算法 
2004-11-17 16:26
kappa314
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2004-10-9
收藏
得分:0 
[IMG]C:\Documents and Settings\Jiang\桌面[/IMG]
2004-11-17 17:01
kappa314
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2004-10-9
收藏
得分:0 

在以上的三叉树中,6和10作为树根(root)结点上数据域的值(key).

a.如果要查找一个key是<6,那么访问左子树(left branch).

b.如果要查找一个key是在6和10之间,那么访问中子树(middle branch)

c.如果要查找一个key是>10,那么访问右子树(right branch)

我想,这个数据结构的结点的存储结构是这样的:

Data1

Data2

Pointer1

Pointer2

Pointer3

但是关于对一组元素的插入和删除,自己就不太明白了,求各位帮帮忙!

2004-11-17 22:48
woojoe
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2004-5-5
收藏
得分:0 

我想是这样的~~~

每次插入到除了叶子节点之外的最下一层;然后作以下判断:如果插入后键值个数<=2,那么ok;如果>2那么则要把这个节点分裂成两个,将中间那个键值上提到父节点中;在转向父节点检查直到没有矛盾。

[此贴子已经被作者于2004-11-21 18:03:49编辑过]


2004-11-21 17:35
woojoe
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2004-5-5
收藏
得分:0 

删除的时候分两种情况:

1.被删的节点在最下面一层(叶结点的上面一层)。2.不是最下面一层

如果是第一种情况那当然比较好做了,1)如果删除后键值数仍为一个或两个时候就ok;2)如果山出前就只有一个键值 ,而左右邻居都多于1个,则“借”一个过来;3)如果左右邻居只有一个键值,那么合并成一个节点。

关于第二种情况,我也说不怎么清楚,好像是将要删除的那个节点的柚子树中的最做节点“代替”他,然后将要删的节点下放到最后一层,下放的过程中再考虑1中的三种情况,再做的吧,楼主还是再问问高手吧

[此贴子已经被作者于2004-11-21 18:16:17编辑过]


2004-11-21 18:03
woojoe
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2004-5-5
收藏
得分:0 
哎呀呀,发现了一个问题……
图片附件: 游客没有浏览图片的权限,请 登录注册


2004-11-21 18:10
kappa314
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2004-10-9
收藏
得分:0 

对多路查找的描述:

1.从一个结点开始,当结点中的数据大于某一个常数K时,则进行"分裂",分裂后生成其他的结点,在分裂过程中产生了多叉树.

2.在分裂过程中,产生的树中的结点的数据,比如:根(root),叶子(leaf)中的数据到底应该存放什么样的数据,这就要调整了,所以多路查找的关键就在于调整数据,让数据存入该存的结点里.

3.多路查找被用于Windows中的文件查找技术中,原因就在于多路查找生成的树很宽,很矮,相对于二叉树而言,很扁平.当使用多路查找时,可以缩短查找时间,提高查找效率(相对于二叉查找而言).

这些是听老师说得,但是老师建议,这种数据结构很复杂的,老师也让我们不要再去做,转而去做其他的实验.,如果有兴趣的可以去看看多路查找的源代码,我也很想看看啊.

谁可以提供源代码啊?????????????

2004-11-22 01:28
快速回复:我写了一个多路查找的算法,请各位帮我看看啊!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023606 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved