(key: K)
| 262 | } |
| 263 | |
| 264 | findSuperstr(key: K): Iterator<V> | undefined { |
| 265 | const iter = this._iter.reset(key); |
| 266 | let node = this._root; |
| 267 | while (node) { |
| 268 | const val = iter.cmp(node.segment); |
| 269 | if (val > 0) { |
| 270 | // left |
| 271 | node = node.left; |
| 272 | } else if (val < 0) { |
| 273 | // right |
| 274 | node = node.right; |
| 275 | } else if (iter.hasNext()) { |
| 276 | // mid |
| 277 | iter.next(); |
| 278 | node = node.mid; |
| 279 | } else { |
| 280 | // collect |
| 281 | if (!node.mid) { |
| 282 | return undefined; |
| 283 | } else { |
| 284 | return this._nodeIterator(node.mid); |
| 285 | } |
| 286 | } |
| 287 | } |
| 288 | return undefined; |
| 289 | } |
| 290 | |
| 291 | private _nodeIterator(node: TernarySearchTreeNode<K, V>): Iterator<V> { |
| 292 | let res: { done: false; value: V; }; |
nothing calls this directly
no test coverage detected