[理工] 资料结构树

楼主: meokay (我可以)   2017-12-10 14:34:00
大家好,小弟想请问大家一些蠢问题
因为刚好在复习Tree这边,而想到的一些问题
因为 2-3 Tree 和 2-3-4 Tree 都是 B Tree 的一种形式,分别为Order = 3 和 Order =
4。
那想请问以下
Q1 : 那也就是如果遇到题目是说B Tree 的 Order =3 就能够把他当成是2-3 Tree 作解
题吗? ( 而 Order = 4 就当成 2-3-4 Tree )
个人的想法是可以的,不知道我有没有误解其本义QQ..
Q2 : 在2-3 Tree 的 Spilt 中 当“插入时”超过 2 Keys 时,提出中间的 Remote 上去
,这
我可以理解。但是如果是2-3-4 Tree的Spilt 呢?
因为我在网络上看到两种形式
1. “插入前”先选择三个里面的中间Remote 后在插入 ( Princeton 的 PDF 中,插入L
时,他先将N给Remote往上后才插入L )
https://i.imgur.com/HmLWExF.jpg
2. 但是我在 usfca 的 Demo 网站上测试了,依序插入 10,50,70,40,当40“插入时”,
他是将他插入之后取 第二个 (4/2) 做Remote,但是如果这样的话那上面的例子中插入L
时,不就应该要Remote M 吗?( 因为先插入后 LMNP 取第二个是M )
https://i.imgur.com/xpvJuPP.jpg
小弟在这部分2-3-4 Spilt 这部分一直没弄的很清楚,一直都是以 Case 1 先提出中间后
再插入来做题目。
想请教板上的大神们应该是那种方式才对呢?
如果我的理解有误的话拜托请别吝啬的纠正我,拜托了!
非常感激不尽! <(_ _)>
谢谢!
作者: TMDTMD2487 (ㄚ冰)   2017-12-10 15:39:00
你知道第一个的第一步插入E他怎么插的吗 教我XD如果我写程式的话 我会把他插进去后判断overflow有的话把floor(n/2)提上去 递回判断父点有无overflow直到没有overflow或是没有父点 我的笔记也是这样写的我刚刚翻了一下程式看一下别人怎么写的m-ary 如果需要做split代表函插入的有m+1个点假设你这m+1个点存在array 0到m那(m-1)/2(取整数)为你split的点(就是要丢到上一层的所以被分成 { 0..[(M-1)/2]-1 } { [(M-1)/2]+1..M }抱歉我好像讲错了XD 需要做split代表有m个点才对但是split的点我没有讲错还是取(M-1)/2的整数部分https://goo.gl/nvkMxr 给你参考这个0到M个点我们将 (M-1)/2 提上去 大概是这样ㄟ其实我还是讲错了0到m-1 取(M-1)/2不这样你第一张图他的取法是跟这个不一样的欧第一个是order 4 这样要取3/2=1 也就是第二个是先把L插入进去后才取欧

Links booklink

Contact Us: admin [ a t ] ucptt.com