:return: Random level from [1, self.max_level] interval. Higher values are less likely.
(self)
| 114 | node = node.forward[0] |
| 115 | |
| 116 | def random_level(self) -> int: |
| 117 | """ |
| 118 | :return: Random level from [1, self.max_level] interval. |
| 119 | Higher values are less likely. |
| 120 | """ |
| 121 | |
| 122 | level = 1 |
| 123 | while random() < self.p and level < self.max_level: |
| 124 | level += 1 |
| 125 | |
| 126 | return level |
| 127 | |
| 128 | def _locate_node(self, key) -> tuple[Node[KT, VT] | None, list[Node[KT, VT]]]: |
| 129 | """ |