Exemple #1
0
 internal RedBlackTreeEnumerator(RedBlackTreeSlice <K, V, N> slice)
 {
     _redBlackTree = slice;
     _isFirst      = true;
     _maximum      = slice.Maximum;
     _hasMaximum   = true;
 }
        public RedBlackTreeKeyEnumerator(IRedBlackTreeBase <K, V, N> redBlackTree)
        {
            _redBlackTree = redBlackTree;
            _isFirst      = true;

            if (redBlackTree is RedBlackTreeSlice <K, V, N> slice)
            {
                _maximum    = slice.Maximum;
                _hasMaximum = true;
            }
        }
        internal RedBlackTreeSlice(IRedBlackTreeBase <K, V, N> redBlackTree, K minimum, K maximum)
        {
            _redBlackTree = redBlackTree;

            if (Compare(minimum, maximum) < 0)
            {
                throw new ArgumentException($"The maximum key of a slice must be >= the minimum key (was given {minimum} to {maximum}).");
            }

            Minimum = minimum;
            Maximum = maximum;
        }
        internal RedBlackTreeSlice(RedBlackTreeSlice <K, V, N> parentSlice, K minimum, K maximum)
        {
            _redBlackTree = parentSlice._redBlackTree;

            if (Compare(minimum, parentSlice.Minimum) < 0)
            {
                throw new ArgumentException($"The minimum key of a subslice must be >= the minimum key of the containing slice ({minimum} is not >= {parentSlice.Minimum}).");
            }
            if (Compare(maximum, parentSlice.Maximum) > 0)
            {
                throw new ArgumentException($"The maximum key of a subslice must be <= the maximum key of the containing slice ({maximum} is not <= {parentSlice.Maximum}).");
            }
            if (Compare(minimum, maximum) < 0)
            {
                throw new ArgumentException($"The maximum key of a slice must be >= the minimum key (was given {minimum} to {maximum}).");
            }

            Minimum = minimum;
            Maximum = maximum;
        }
 public RedBlackTreePairCollection(IRedBlackTreeBase <K, V, N> redBlackTree)
 {
     _redBlackTree = redBlackTree;
 }
Exemple #6
0
 internal RedBlackTreeEnumerator(IRedBlackTreeBase <K, V, N> redBlackTree)
 {
     _redBlackTree = redBlackTree;
     _isFirst      = true;
 }
Exemple #7
0
 protected ReadOnlyRedBlackTreeBase(IRedBlackTreeBase <K, V, N> tree)
 {
     RedBlackTree = tree;
 }
 public RedBlackTreeDictionaryWrapper(IRedBlackTreeBase <K, V, N> redBlackTree)
 {
     _redBlackTree = redBlackTree;
 }