五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

2023新版數(shù)據(jù)結(jié)構(gòu)與算法Java視頻教程(下篇),java高級(jí)程序員必學(xué)的數(shù)據(jù)

2023-08-18 19:21 作者:愛(ài)幻想的隨心者  | 我要投稿

跟著寫(xiě)了幾遍B樹(shù),發(fā)現(xiàn)balance方法里向右借key的代碼好像有點(diǎn)小錯(cuò)誤。

//2.2向右借用
if (right != null && right.keyNumber > MIN_KEY_NUMBER) {
    node.insertKey(parent.keys[index], node.keyNumber);
    parent.keys[index] = right.removeLeftmostKey();
    if (!right.leaf) {
        node.insertChild(right.removeLeftmostChild(), node.keyNumber + 1);
    }
    return;
}


這里node.keyNumber+1應(yīng)該是越界了。

考慮到每次調(diào)用insertChild方法都是在insertKey之后,key已經(jīng)++,此時(shí)keyNumber的值已經(jīng)與孩子數(shù)目相等,所以插入索引應(yīng)為keyNumber,猜測(cè)滿(mǎn)老師可能是沒(méi)有測(cè)試到這個(gè)情況。這里我給出一個(gè)測(cè)試用例,如有漏誤歡迎指正

@Test
@DisplayName("case5: balance left rotate")
public void testRemove5_2() {
    /*
        4|5|6  ==>  5
                   / \
                  4   6
       5
      / \        ==>      5|7    ==>    5|7
     4   6|7|8           / | \         / | \
                        4  6  8      2|3|4  6 8

     3|5|7                     5                             5
    / | | \  ==>             /   \                        /     \
   2  4 6  8                3     7              ==>     3      7|9
                           / \   / \                    / \    / | \
                          2   4 6   8|9|10             2   4  6  8  10

     5                           7
    / \                        /   \
   _   7|9      ==>           5     9
   |   /|\                   / \   / \
  2|4 6 8 10                2|4 6 8  10
    */
    BTree tree = new BTree(2);
    tree.put(4);
    tree.put(5);
    tree.put(6);
    tree.put(7);
    tree.put(8);
    tree.put(3);
    tree.put(2);
    tree.put(9);
    tree.put(10);

    tree.remove(3);
    assertEquals("[7]", tree.root.toString());
    assertEquals("[5]", tree.root.children[0].toString());
    assertEquals("[9]", tree.root.children[1].toString());
    assertEquals("[2, 4]", tree.root.children[0].children[0].toString());
    assertEquals("[6]", tree.root.children[0].children[1].toString());
    assertEquals("[8]", tree.root.children[1].children[0].toString());
    assertEquals("[10]", tree.root.children[1].children[1].toString());
}


期待滿(mǎn)老師繼續(xù)產(chǎn)出高質(zhì)量視頻呀!(*^▽^*)



2023新版數(shù)據(jù)結(jié)構(gòu)與算法Java視頻教程(下篇),java高級(jí)程序員必學(xué)的數(shù)據(jù)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
浪卡子县| 泗洪县| 宁远县| 利津县| 江陵县| 娄烦县| 七台河市| 滨海县| 义乌市| 黑河市| 尉氏县| 宾阳县| 陵水| 胶州市| 巴彦淖尔市| 安达市| 辽中县| 抚松县| 鹤山市| 全南县| 岳阳市| 普兰店市| 广东省| 武川县| 西青区| 禹州市| 江华| 白河县| 循化| 宿州市| 阜南县| 庆阳市| 通州市| 东丰县| 沅江市| 出国| 三穗县| 安福县| 南部县| 资兴市| 博白县|