1. 程式人生 > >平衡二叉樹AVL 紅黑樹 B樹 二叉查詢樹 B+樹 B-樹

平衡二叉樹AVL 紅黑樹 B樹 二叉查詢樹 B+樹 B-樹

B-Trees

  • Bnumberofchildren<2BB \le number of children < 2B
  • B1numberofkeys<2B1B-1 \le number of keys <2B-1
  • all leaves are at the same depth

if B = 2, the number of children is 2 or 3, this is the 2-3 tree

  • Searching
    和普通的二叉樹查詢差不多,將給定的key值和node中的key值依次進行比較,找到值,或找到要查詢的子節點的位置,繼續查詢
  • Insertion
    找到要插入的葉子節點的位置,插入後如果節點中keys過多,就分裂這個節點,將中間節點放入上層中,將這個節點平分位兩個節點。如果上層節點中的keys也過多,用同樣的方法分裂
  • Deletion
    刪除在葉子節點進行刪除,如果刪除的位置不是葉子節點就先將右子樹最小key提上來。如果要刪除的葉子節點刪除key後keys數過少,就檢視它的兄弟是不是能借,如果兄弟keys足夠可以借,就將父key拉下來,兄弟key放上去;如果兄弟key也不足,就將兩個節點合併。父key拉下來,兩個節點合併,父節點如果keys過少,就用同樣的方法處理。
    https://www.bilibili.com/video/av12121729?from=search&seid=300379415039203747

B樹又叫B-樹