blockset 0.3.1

Data Block Set
Documentation
# Subtree

Subtree building algorithm works for a sorted finite list of items.

For each two items we define a `dif` value which is `dif(a, b) = (a ^ b).leading_zeros()`. For any sorted numbers `[a, b, c]`
`dif(a, b)` is never equal `dif(b, c)`.

## Example

```
00010010 00110101 00111000 01010001 01101000 01101100 10000111 10001011 10101010 10101011 10110111 11000010 11011110 11101000 11110110 11111011
```

- :
  - 0:
    - 00:
      - 00010010
      - 0011:
        - 00110101
        - 00111000
    - 01:
      - 01010001
      - 01101:
        - 01101000
        - 01101100
  - 1:
    - 10:
      - 1000:
        - 10000111
        - 10001011
      - 101:
        - 1010101:
          - 10101010
          - 10101011
        - 10110111
    - 11:
      - 110:
        - 11000010
        - 11011110
      - 111:
        - 11101000
        - 1111:
          - 11110110
          - 11111011

Subtree:

```
        2        4        1        2        5        0        4        2        7        3        1        3        2        3        4
00010010 00110101 00111000 01010001 01101000 01101100 10000111 10001011 10101010 10101011 10110111 11000010 11011110 11101000 11110110 11111011
        |        X        |        |        X        |        X        |        X        |        |        X        |        |        X
        X                 |        X                 |                 |                 X        |                 |        X
                          X                          |                 X                          |                 X
                                                     |                                            X
                                                     X
```

## Deletion

Delete # 6.

```
        2        4        1        2        5        0        2        7        3        1        3        2        3        4
00010010 00110101 00111000 01010001 01101000 01101100 10001011 10101010 10101011 10110111 11000010 11011110 11101000 11110110 11111011
        |        X        |        |        X        |        |        X        |        |        X        |        |        X
        X                 |        X                 |        |                 X        |                 |        X
                          X                          |        U                          |                 X
                                                     |                                   U
                                                     U
```

Delete # 2.

```
        2        1        2        5        0        2        7        3        1        3        2        3        4
00010010 00110101 01010001 01101000 01101100 10001011 10101010 10101011 10110111 11000010 11011110 11101000 11110110 11111011
        U        |        |        X        |        |        X        |        |        X        |        |        X
                 |        X                 |        |                 X        |                 |        X
                 U                          |        X                          |                 X
                                            |                                   X
                                            U
```

Delete # 13.

```
        2        1        2        5        0        2        7        3        1        3        2        3
00010010 00110101 01010001 01101000 01101100 10001011 10101010 10101011 10110111 11000010 11011110 11101000 11110110
        X        |        |        X        |        |        X        |        |        X        |        U
                 |        X                 |        |                 X        |                 U
                 X                          |        X                          |
                                            |                                   U
                                            U
```

Delete # 4.

```
        2        1        2        0        2        7        3        1        3        2        3
00010010 00110101 01010001 01101000 10001011 10101010 10101011 10110111 11000010 11011110 11101000 11110110
        X        |        |        |        |        X        |        |        X        |        X
                 |        U        |        |                 X        |                 X
                 U                 |        X                          |
                                   |                                   X
                                   U
```

Delete # 10.

```
        2        1        2        0        2        7        3        1        3        2
00010010 00110101 01010001 01101000 10001011 10101010 10101011 10110111 11000010 11011110 11110110
        X        |        |        |        |        X        |        |        X        |
                 |        X        |        |                 X        |                 U
                 X                 |        X                          |
                                   |                                   U
                                   U
```

Delete # 2.

```
        2        1        0        2        7        3        1        3        2
00010010 00110101 01101000 10001011 10101010 10101011 10110111 11000010 11011110 11110110
        X        |        |        |        X        |        |        X        |
                 U        |        |                 X        |                 X
                          |        X                          |
                          |                                   X
                          U
```

Delete # 5.

```
        2        1        0        2        3        1        3        2
00010010 00110101 01101000 10001011 10101010 10110111 11000010 11011110 11110110
        X        |        |        |        U        |        X        |
                 X        |        U                 |                 X
                          |                          U
                          U
```

Delete # 8.

```
        2        1        0        2        3        1        3
00010010 00110101 01101000 10001011 10101010 10110111 11000010 11011110
        X        |        |        |        X        |        X
                 X        |        X                 |
                          |                          U
                          U
```

Delete # 3.

```
        2        1        0        3        1        3
00010010 00110101 01101000 10101010 10110111 11000010 11011110
        X        |        |        X        |        X
                 X        |                 U
                          U
```

Delete # 0.

```
        1        0        3        1        3
00110101 01101000 10101010 10110111 11000010 11011110
        U        |        X        |        X
                 |                 X
                 U
```

Delete # 4.

```
        1        0        3        1
00110101 01101000 10101010 10110111 11011110
        X        |        X        |
                 |                 U
                 U
```

Delete # 2.

```
        1        0        1
00110101 01101000 10110111 11011110
        X        |        U
                 U
```

Delete # 3.

```
        1        0
00110101 01101000 10110111
        X        |
                 U
```

Delete # 0.

```
        0
01101000 10110111
        U
```