What is the difference btw “Order” and “Degree” in terms of Tree data structure

前端 未结 3 1218
走了就别回头了
走了就别回头了 2021-01-01 23:54

B-Tree Definition they use the \'order\' term in :

According to Knuth\'s definition, a B-tree of order m is a tree which satisfies the following properties:
         


        
3条回答
  •  忘掉有多难
    2021-01-02 00:11

    There are two popular definitions of a B-tree where:

    • Knuth Order (Order) is used by Knuth's definition
    • CLRS Degree (Degree) is used in the definition in Cormen et al in Introduction to Algorithms (CLRS)

    Both the Knuth order and the CLRS degree measure: min <= children <= max, the minimum and maximum children, (min, max), each internal node in the tree is allowed to have. Both definitions agree that the min can't be less than max/2:

    Knuth Order, k |  (min,max)  | CLRS Degree, t
    ---------------|-------------|---------------
         0         |      -      |        –
         1         |      –      |        –
         2         |      –      |        –
         3         |    (2,3)    |        –
         4         |    (2,4)    |      t = 2
         5         |    (3,5)    |        –
         6         |    (3,6)    |      t = 3
         7         |    (4,7)    |        –
         8         |    (4,8)    |      t = 4
         9         |    (5,9)    |        –
         10        |    (5,10)   |      t = 5
    

    Key similarities / differences:

    • The Knuth order k is an index counting the maximum number of children. A Knuth order of k means every node must have a max = k, and a min = ceil(k/2). For example, (3,6) is a B-tree of Knuth order 6.
    • The CLRS degree t is an index counting the minimum number of children. A CLRS degree of t means every node must have a min = t and a max = 2t. For example, (3,6) is a B-tree of CLRS degree 3
    • In both definitions, it is the case the min = ceil(max / 2) and max = 2 * min.
    • In both definitions, it is the case that the number of keys is equal to the number of children minus one. So both the Knuth order and the CLRS degree are technically also counting minimum and maximum keys – as well as simultaneously counting the minimum and maximum children.

    • Knuth's definition allows trees (min,max), where max an is odd integer, but CLRS's definition ignores them. Any tree of the form (t, 2t-1) is invalid by CLRS's definition. For example a tree with (min,max) = (5,9) is a valid via Knuth's definition but invalid via CLRS's definition.


    Interesting asides:

    • Both definitions include 2-3-4 trees, which are trees with (min, max) = (2,4). It is a B-tree with Knuth order k = 4 and it's a CLRS B-tree with degree t = 2. These trees are closely related to Red-Black Trees.
    • Only Knuth's definition includes 2-3 trees, where (min, max) = (2,3). A 2-3 tree is a Knuth B-tree with Knuth order k = 3. It is not a valid CLRS B-tree. It's a shame that CLRS don't include this tree because they are closely related to AA trees.

提交回复
热议问题