7[DebuggerDisplay(
"Count = {Count}")]
8[DebuggerTypeProxy(typeof(PriorityQueueDebugView<, >))]
11 [DebuggerDisplay(
"Count = {Count}")]
34 _current =
default((TElement, TPriority));
60 _current =
default((TElement, TPriority));
71 _current =
default((TElement, TPriority));
79 object ICollection.SyncRoot =>
this;
81 bool ICollection.IsSynchronized =>
false;
98 if (
array.GetLowerBound(0) != 0)
244 element =
default(TElement);
256 element =
default(TElement);
307 (TElement, TPriority)[] nodes =
_nodes;
310 if (nodes.Length ==
num2)
334 if (elements ==
null)
349 (TElement, TPriority)[] nodes =
_nodes;
350 foreach (TElement element
in elements)
352 if (nodes.Length ==
num2)
367 foreach (TElement
element2 in elements)
375 if (
RuntimeHelpers.IsReferenceOrContainsReferences<(TElement, TPriority)>())
399 int num = (int)((
double)_nodes.Length * 0.9);
409 int num = 2 *
_nodes.Length;
438 if (
RuntimeHelpers.IsReferenceOrContainsReferences<(TElement, TPriority)>())
440 _nodes[num] =
default((TElement, TPriority));
446 return index - 1 >> 2;
451 return (
index << 2) + 1;
456 (TElement, TPriority)[] nodes =
_nodes;
476 (TElement, TPriority)[] nodes =
_nodes;
494 (TElement, TPriority)[] nodes =
_nodes;
511 (TElement, TPriority)[] nodes =
_nodes;
516 (TElement, TPriority)
tuple = nodes[num];
521 (TElement, TPriority)
tuple2 = nodes[num];
541 (TElement, TPriority)[] nodes =
_nodes;
546 (TElement, TPriority)
tuple = nodes[num];
551 (TElement, TPriority)
tuple2 = nodes[num];
570 if (
typeof(TPriority).IsValueType)
static unsafe void Clear(Array array)
static unsafe void Copy(Array sourceArray, Array destinationArray, int length)
Enumerator GetEnumerator()
readonly PriorityQueue< TElement, TPriority > _queue
UnorderedItemsCollection(PriorityQueue< TElement, TPriority > queue)
int GetFirstChildIndex(int index)
void EnqueueRange(IEnumerable< TElement > elements, TPriority priority)
static IComparer< TPriority > InitializeComparer(IComparer< TPriority > comparer)
TElement EnqueueDequeue(TElement element, TPriority priority)
PriorityQueue(IEnumerable<(TElement Element, TPriority Priority)> items, IComparer< TPriority >? comparer)
PriorityQueue(int initialCapacity, IComparer< TPriority >? comparer)
readonly IComparer< TPriority > _comparer
bool TryDequeue([MaybeNullWhen(false)] out TElement element, [MaybeNullWhen(false)] out TPriority priority)
void Grow(int minCapacity)
PriorityQueue(IEnumerable<(TElement Element, TPriority Priority)> items)
UnorderedItemsCollection _unorderedItems
void MoveDownDefaultComparer((TElement Element, TPriority Priority) node, int nodeIndex)
PriorityQueue(IComparer< TPriority >? comparer)
PriorityQueue(int initialCapacity)
int GetParentIndex(int index)
void Enqueue(TElement element, TPriority priority)
void MoveUpDefaultComparer((TElement Element, TPriority Priority) node, int nodeIndex)
TElement TPriority Priority[] _nodes
UnorderedItemsCollection UnorderedItems
void MoveDownCustomComparer((TElement Element, TPriority Priority) node, int nodeIndex)
void EnqueueRange(IEnumerable<(TElement Element, TPriority Priority)> items)
int EnsureCapacity(int capacity)
void MoveUpCustomComparer((TElement Element, TPriority Priority) node, int nodeIndex)
bool TryPeek([MaybeNullWhen(false)] out TElement element, [MaybeNullWhen(false)] out TPriority priority)
static byte Min(byte val1, byte val2)
static byte Max(byte val1, byte val2)
static string ArgumentOutOfRange_Index
static string InvalidOperation_EmptyQueue
static string Argument_InvalidArrayType
static string Arg_NonZeroLowerBound
static string InvalidOperation_EnumFailedVersion
static string Arg_RankMultiDimNotSupported
static string Argument_InvalidOffLen
static string ArgumentOutOfRange_NeedNonNegNum
void CopyTo(T[] array, int arrayIndex)
new IEnumerator< T > GetEnumerator()
readonly PriorityQueue< TElement, TPriority > _queue
TElement TPriority Priority Current
Enumerator(PriorityQueue< TElement, TPriority > queue)