| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 part of dart.collection; | 5 part of dart.collection; |
| 6 | 6 |
| 7 typedef bool _Predicate<T>(T value); | 7 typedef bool _Predicate<T>(T value); |
| 8 | 8 |
| 9 /** | 9 /** |
| 10 * A node in a splay tree. It holds the sorting key and the left | 10 * A node in a splay tree. It holds the sorting key and the left |
| (...skipping 553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 564 _rebuildWorkList(_currentNode); | 564 _rebuildWorkList(_currentNode); |
| 565 } | 565 } |
| 566 _currentNode = _workList.removeLast(); | 566 _currentNode = _workList.removeLast(); |
| 567 _findLeftMostDescendent(_currentNode.right); | 567 _findLeftMostDescendent(_currentNode.right); |
| 568 return true; | 568 return true; |
| 569 } | 569 } |
| 570 | 570 |
| 571 T _getValue(_SplayTreeNode node); | 571 T _getValue(_SplayTreeNode node); |
| 572 } | 572 } |
| 573 | 573 |
| 574 class _SplayTreeKeyIterable<K> extends IterableBase<K> { | 574 class _SplayTreeKeyIterable<K> extends IterableBase<K> |
| 575 implements EfficientLength { |
| 575 _SplayTree<K> _tree; | 576 _SplayTree<K> _tree; |
| 576 _SplayTreeKeyIterable(this._tree); | 577 _SplayTreeKeyIterable(this._tree); |
| 577 int get length => _tree._count; | 578 int get length => _tree._count; |
| 578 bool get isEmpty => _tree._count == 0; | 579 bool get isEmpty => _tree._count == 0; |
| 579 Iterator<K> get iterator => new _SplayTreeKeyIterator<K>(_tree); | 580 Iterator<K> get iterator => new _SplayTreeKeyIterator<K>(_tree); |
| 580 } | 581 } |
| 581 | 582 |
| 582 class _SplayTreeValueIterable<K, V> extends IterableBase<V> { | 583 class _SplayTreeValueIterable<K, V> extends IterableBase<V> |
| 584 implements EfficientLength { |
| 583 SplayTreeMap<K, V> _map; | 585 SplayTreeMap<K, V> _map; |
| 584 _SplayTreeValueIterable(this._map); | 586 _SplayTreeValueIterable(this._map); |
| 585 int get length => _map._count; | 587 int get length => _map._count; |
| 586 bool get isEmpty => _map._count == 0; | 588 bool get isEmpty => _map._count == 0; |
| 587 Iterator<V> get iterator => new _SplayTreeValueIterator<K, V>(_map); | 589 Iterator<V> get iterator => new _SplayTreeValueIterator<K, V>(_map); |
| 588 } | 590 } |
| 589 | 591 |
| 590 class _SplayTreeKeyIterator<K> extends _SplayTreeIterator<K> { | 592 class _SplayTreeKeyIterator<K> extends _SplayTreeIterator<K> { |
| 591 _SplayTreeKeyIterator(_SplayTree<K> map): super(map); | 593 _SplayTreeKeyIterator(_SplayTree<K> map): super(map); |
| 592 K _getValue(_SplayTreeNode node) => node.key; | 594 K _getValue(_SplayTreeNode node) => node.key; |
| 593 } | 595 } |
| 594 | 596 |
| 595 class _SplayTreeValueIterator<K, V> extends _SplayTreeIterator<V> { | 597 class _SplayTreeValueIterator<K, V> extends _SplayTreeIterator<V> { |
| 596 _SplayTreeValueIterator(SplayTreeMap<K, V> map): super(map); | 598 _SplayTreeValueIterator(SplayTreeMap<K, V> map): super(map); |
| 597 V _getValue(_SplayTreeMapNode node) => node.value; | 599 V _getValue(_SplayTreeMapNode node) => node.value; |
| 598 } | 600 } |
| 599 | 601 |
| 600 class _SplayTreeNodeIterator<K> | 602 class _SplayTreeNodeIterator<K> |
| 601 extends _SplayTreeIterator<_SplayTreeNode<K>> { | 603 extends _SplayTreeIterator<_SplayTreeNode<K>> { |
| 602 _SplayTreeNodeIterator(_SplayTree<K> map): super(map); | 604 _SplayTreeNodeIterator(_SplayTree<K> map): super(map); |
| 603 _SplayTreeNode<K> _getValue(_SplayTreeNode node) => node; | 605 _SplayTreeNode<K> _getValue(_SplayTreeNode node) => node; |
| 604 } | 606 } |
| OLD | NEW |