abstract class IndexPriorityQueue[Key] extends Iterable[Key]

This abstract class represents an indexed priority queue of generic keys. It supports the usual insert and delete operations, along with methods for changing a given key, peeking at the highest-priority key, testing if the priority queue is empty, and iterating through the keys.

In order to let the client refer to items on the priority queue, an integer between 0 and length-1 is associated with each key;the client uses this integer to specify which key to delete or change.

This implementation uses a binary heap along with additional arrays to associate keys with integers in the given range.

The insert, delete and change-key, operations take logarithmic time. The is-empty, size, highest-index, highest-key and key-of operations take constant time. Construction takes time proportional to the specified capacity.

This abstract class supports both minimum and maximum priority-key implementations by means of the ht method.

Adapted from the book Algorithms 4 by R. Sedgewick and K. Wayne.

See also

Section 2.4 of Algorithms, 4th Edition

Algorithms, 4th edition by Robert Sedgewick and Kevin Wayne, Addison-Wesley Professional, 2011, ISBN 0-321-57351-X. http://algs4.cs.princeton.edu

Linear Supertypes
Iterable[Key], IterableLike[Key, Iterable[Key]], Equals, GenIterable[Key], GenIterableLike[Key, Iterable[Key]], Traversable[Key], GenTraversable[Key], GenericTraversableTemplate[Key, Iterable], TraversableLike[Key, Iterable[Key]], GenTraversableLike[Key, Iterable[Key]], Parallelizable[Key, ParIterable[Key]], TraversableOnce[Key], GenTraversableOnce[Key], FilterMonadic[Key, Iterable[Key]], HasNewBuilder[Key, Iterable[Key] @scala.annotation.unchecked.uncheckedVariance], AnyRef, Any
Known Subclasses
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. IndexPriorityQueue
  2. Iterable
  3. IterableLike
  4. Equals
  5. GenIterable
  6. GenIterableLike
  7. Traversable
  8. GenTraversable
  9. GenericTraversableTemplate
  10. TraversableLike
  11. GenTraversableLike
  12. Parallelizable
  13. TraversableOnce
  14. GenTraversableOnce
  15. FilterMonadic
  16. HasNewBuilder
  17. AnyRef
  18. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new IndexPriorityQueue(length: Int)(implicit arg0: Ordering[Key], arg1: ClassTag[Key])

    length

    the length of this priority queue

Type Members

  1. type Self = Iterable[Key]
    Attributes
    protected[this]
    Definition Classes
    TraversableLike
  2. class WithFilter extends FilterMonadic[A, Repr]
    Definition Classes
    TraversableLike

Abstract Value Members

  1. abstract def ht(i: Int, j: Int)(implicit ord: Ordering[Key]): Boolean

    Returns if the key associated with index i has higher priority than the key associated with index j.

    Returns if the key associated with index i has higher priority than the key associated with index j.

    returns

    key(index(i)) has higher priority than key(index(j))

    Attributes
    protected

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. def ++[B >: Key, That](that: GenTraversableOnce[B])(implicit bf: CanBuildFrom[Iterable[Key], B, That]): That
    Definition Classes
    TraversableLike → GenTraversableLike
  4. def ++:[B >: Key, That](that: Traversable[B])(implicit bf: CanBuildFrom[Iterable[Key], B, That]): That
    Definition Classes
    TraversableLike
  5. def ++:[B >: Key, That](that: TraversableOnce[B])(implicit bf: CanBuildFrom[Iterable[Key], B, That]): That
    Definition Classes
    TraversableLike
  6. def /:[B](z: B)(op: (B, Key) ⇒ B): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
  7. def :\[B](z: B)(op: (Key, B) ⇒ B): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
  8. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  9. def addString(b: StringBuilder): StringBuilder
    Definition Classes
    TraversableOnce
  10. def addString(b: StringBuilder, sep: String): StringBuilder
    Definition Classes
    TraversableOnce
  11. def addString(b: StringBuilder, start: String, sep: String, end: String): StringBuilder
    Definition Classes
    TraversableOnce
  12. def aggregate[B](z: ⇒ B)(seqop: (B, Key) ⇒ B, combop: (B, B) ⇒ B): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
  13. def apply(i: Int): Key

    returns

    the key associated with index i

    Exceptions thrown

    IndexOutOfBoundsException if not 0 <= i < length

    NoSuchElementException if no key is associated with index i

  14. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  15. def canEqual(that: Any): Boolean
    Definition Classes
    IterableLike → Equals
  16. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  17. def collect[B, That](pf: PartialFunction[Key, B])(implicit bf: CanBuildFrom[Iterable[Key], B, That]): That
    Definition Classes
    TraversableLike → GenTraversableLike
  18. def collectFirst[B](pf: PartialFunction[Key, B]): Option[B]
    Definition Classes
    TraversableOnce
  19. def companion: GenericCompanion[Iterable]
    Definition Classes
    Iterable → GenIterable → Traversable → GenTraversable → GenericTraversableTemplate
  20. def contains(i: Int): Boolean

    returns

    if index i is associated with some key

    Exceptions thrown

    IndexOutOfBoundsException if not 0 <= i < length

  21. def copyToArray[B >: Key](xs: Array[B], start: Int, len: Int): Unit
    Definition Classes
    IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
  22. def copyToArray[B >: Key](xs: Array[B]): Unit
    Definition Classes
    TraversableOnce → GenTraversableOnce
  23. def copyToArray[B >: Key](xs: Array[B], start: Int): Unit
    Definition Classes
    TraversableOnce → GenTraversableOnce
  24. def copyToBuffer[B >: Key](dest: Buffer[B]): Unit
    Definition Classes
    TraversableOnce
  25. def count(p: (Key) ⇒ Boolean): Int
    Definition Classes
    TraversableOnce → GenTraversableOnce
  26. def delete(i: Int): Unit

    Remove the key associated with index i.

    Remove the key associated with index i.

    Exceptions thrown

    IndexOutOfBoundsException if not 0 <= i < length

    NoSuchElementException if no key is associated with index i

  27. def dequeue(): Int

    Removes the item with highest priority from this queue and returns its index.

    Removes the item with highest priority from this queue and returns its index.

    returns

    the index of the highest-priority item from this queue

    Exceptions thrown

    NoSuchElementException if this priority queue is empty

  28. def drop(n: Int): Iterable[Key]
    Definition Classes
    IterableLike → TraversableLike → GenTraversableLike
  29. def dropRight(n: Int): Iterable[Key]
    Definition Classes
    IterableLike
  30. def dropWhile(p: (Key) ⇒ Boolean): Iterable[Key]
    Definition Classes
    TraversableLike → GenTraversableLike
  31. def enqueue(i: Int, item: Key): Unit

    Insert key, associated with index i.

    Insert key, associated with index i.

    Exceptions thrown

    IllegalArgumentException if i is already on queue

    IndexOutOfBoundsException if not 0 <= i < length

  32. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  33. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  34. def exists(p: (Key) ⇒ Boolean): Boolean
    Definition Classes
    IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
  35. def filter(p: (Key) ⇒ Boolean): Iterable[Key]
    Definition Classes
    TraversableLike → GenTraversableLike
  36. def filterNot(p: (Key) ⇒ Boolean): Iterable[Key]
    Definition Classes
    TraversableLike → GenTraversableLike
  37. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  38. def find(p: (Key) ⇒ Boolean): Option[Key]
    Definition Classes
    IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
  39. def flatMap[B, That](f: (Key) ⇒ GenTraversableOnce[B])(implicit bf: CanBuildFrom[Iterable[Key], B, That]): That
    Definition Classes
    TraversableLike → GenTraversableLike → FilterMonadic
  40. def flatten[B](implicit asTraversable: (Key) ⇒ GenTraversableOnce[B]): Iterable[B]
    Definition Classes
    GenericTraversableTemplate
  41. def fold[A1 >: Key](z: A1)(op: (A1, A1) ⇒ A1): A1
    Definition Classes
    TraversableOnce → GenTraversableOnce
  42. def foldLeft[B](z: B)(op: (B, Key) ⇒ B): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
  43. def foldRight[B](z: B)(op: (Key, B) ⇒ B): B
    Definition Classes
    IterableLike → TraversableOnce → GenTraversableOnce
  44. def forall(p: (Key) ⇒ Boolean): Boolean
    Definition Classes
    IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
  45. def foreach[U](f: (Key) ⇒ U): Unit
    Definition Classes
    IterableLike → TraversableLike → GenTraversableLike → TraversableOnce → GenTraversableOnce → FilterMonadic
  46. def genericBuilder[B]: Builder[B, Iterable[B]]
    Definition Classes
    GenericTraversableTemplate
  47. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  48. def groupBy[K](f: (Key) ⇒ K): Map[K, Iterable[Key]]
    Definition Classes
    TraversableLike → GenTraversableLike
  49. def grouped(size: Int): Iterator[Iterable[Key]]
    Definition Classes
    IterableLike
  50. def hasDefiniteSize: Boolean
    Definition Classes
    TraversableLike → TraversableOnce → GenTraversableOnce
  51. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  52. def head: Key
    Definition Classes
    IterableLike → TraversableLike → GenTraversableLike
  53. def headOption: Option[Key]
    Definition Classes
    TraversableLike → GenTraversableLike
  54. val index: Array[Int]
    Attributes
    protected
  55. def init: Iterable[Key]
    Definition Classes
    TraversableLike → GenTraversableLike
  56. def inits: Iterator[Iterable[Key]]
    Definition Classes
    TraversableLike
  57. def isEmpty: Boolean
    Definition Classes
    IndexPriorityQueue → IterableLike → GenericTraversableTemplate → TraversableLike → TraversableOnce → GenTraversableOnce
  58. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  59. final def isTraversableAgain: Boolean
    Definition Classes
    TraversableLike → GenTraversableLike → GenTraversableOnce
  60. def iterator: Iterator[Key]

    Returns an iterator that iterates over the items in this queue in FIFO order with (!) consuming them.

    Returns an iterator that iterates over the items in this queue in FIFO order with (!) consuming them. .

    returns

    the iterator

    Definition Classes
    IndexPriorityQueue → IterableLike → GenIterableLike
  61. val key: Array[Key]
    Attributes
    protected
  62. def last: Key
    Definition Classes
    TraversableLike → GenTraversableLike
  63. def lastOption: Option[Key]
    Definition Classes
    TraversableLike → GenTraversableLike
  64. val length: Int
  65. def map[B, That](f: (Key) ⇒ B)(implicit bf: CanBuildFrom[Iterable[Key], B, That]): That
    Definition Classes
    TraversableLike → GenTraversableLike → FilterMonadic
  66. def max[B >: Key](implicit cmp: Ordering[B]): Key
    Definition Classes
    TraversableOnce → GenTraversableOnce
  67. def maxBy[B](f: (Key) ⇒ B)(implicit cmp: Ordering[B]): Key
    Definition Classes
    TraversableOnce → GenTraversableOnce
  68. def min[B >: Key](implicit cmp: Ordering[B]): Key
    Definition Classes
    TraversableOnce → GenTraversableOnce
  69. def minBy[B](f: (Key) ⇒ B)(implicit cmp: Ordering[B]): Key
    Definition Classes
    TraversableOnce → GenTraversableOnce
  70. def mkString: String
    Definition Classes
    TraversableOnce → GenTraversableOnce
  71. def mkString(sep: String): String
    Definition Classes
    TraversableOnce → GenTraversableOnce
  72. def mkString(start: String, sep: String, end: String): String
    Definition Classes
    TraversableOnce → GenTraversableOnce
  73. var n: Int
    Attributes
    protected
  74. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  75. def newBuilder: Builder[Key, Iterable[Key]]
    Attributes
    protected[this]
    Definition Classes
    GenericTraversableTemplate → HasNewBuilder
  76. def nonEmpty: Boolean
    Definition Classes
    TraversableOnce → GenTraversableOnce
  77. final def notify(): Unit
    Definition Classes
    AnyRef
  78. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  79. def par: ParIterable[Key]
    Definition Classes
    Parallelizable
  80. def parCombiner: Combiner[Key, ParIterable[Key]]
    Attributes
    protected[this]
    Definition Classes
    TraversableLike → Parallelizable
  81. def partition(p: (Key) ⇒ Boolean): (Iterable[Key], Iterable[Key])
    Definition Classes
    TraversableLike → GenTraversableLike
  82. def peekIndex: Int

    Returns the index of the item with highest priority from this queue without consuming it.

    Returns the index of the item with highest priority from this queue without consuming it.

    returns

    the index of the highest-priority item from this queue

    Exceptions thrown

    NoSuchElementException if this priority queue is empty

  83. def peekKey: Key

    Returns the item with highest priority from this queue without consuming it.

    Returns the item with highest priority from this queue without consuming it.

    returns

    the highest-priority item from this queue

    Exceptions thrown

    NoSuchElementException if this priority queue is empty

  84. def product[B >: Key](implicit num: Numeric[B]): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
  85. def reduce[A1 >: Key](op: (A1, A1) ⇒ A1): A1
    Definition Classes
    TraversableOnce → GenTraversableOnce
  86. def reduceLeft[B >: Key](op: (B, Key) ⇒ B): B
    Definition Classes
    TraversableOnce
  87. def reduceLeftOption[B >: Key](op: (B, Key) ⇒ B): Option[B]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  88. def reduceOption[A1 >: Key](op: (A1, A1) ⇒ A1): Option[A1]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  89. def reduceRight[B >: Key](op: (Key, B) ⇒ B): B
    Definition Classes
    IterableLike → TraversableOnce → GenTraversableOnce
  90. def reduceRightOption[B >: Key](op: (Key, B) ⇒ B): Option[B]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  91. def repr: Iterable[Key]
    Definition Classes
    TraversableLike → GenTraversableLike
  92. def reversed: List[Key]
    Attributes
    protected[this]
    Definition Classes
    TraversableOnce
  93. def sameElements[B >: Key](that: GenIterable[B]): Boolean
    Definition Classes
    IterableLike → GenIterableLike
  94. def scan[B >: Key, That](z: B)(op: (B, B) ⇒ B)(implicit cbf: CanBuildFrom[Iterable[Key], B, That]): That
    Definition Classes
    TraversableLike → GenTraversableLike
  95. def scanLeft[B, That](z: B)(op: (B, Key) ⇒ B)(implicit bf: CanBuildFrom[Iterable[Key], B, That]): That
    Definition Classes
    TraversableLike → GenTraversableLike
  96. def scanRight[B, That](z: B)(op: (Key, B) ⇒ B)(implicit bf: CanBuildFrom[Iterable[Key], B, That]): That
    Definition Classes
    TraversableLike → GenTraversableLike
    Annotations
    @migration
    Migration

    (Changed in version 2.9.0) The behavior of scanRight has changed. The previous behavior can be reproduced with scanRight.reverse.

  97. def seq: Iterable[Key]
    Definition Classes
    Iterable → GenIterable → Traversable → GenTraversable → Parallelizable → TraversableOnce → GenTraversableOnce
  98. def size: Int

    returns

    the number of keys in this priority queue

    Definition Classes
    IndexPriorityQueue → GenTraversableLike → TraversableOnce → GenTraversableOnce
  99. def sizeHintIfCheap: Int
    Attributes
    protected[scala.collection]
    Definition Classes
    GenTraversableOnce
  100. def slice(from: Int, until: Int): Iterable[Key]
    Definition Classes
    IterableLike → TraversableLike → GenTraversableLike
  101. def sliding(size: Int, step: Int): Iterator[Iterable[Key]]
    Definition Classes
    IterableLike
  102. def sliding(size: Int): Iterator[Iterable[Key]]
    Definition Classes
    IterableLike
  103. def span(p: (Key) ⇒ Boolean): (Iterable[Key], Iterable[Key])
    Definition Classes
    TraversableLike → GenTraversableLike
  104. def splitAt(n: Int): (Iterable[Key], Iterable[Key])
    Definition Classes
    TraversableLike → GenTraversableLike
  105. def stringPrefix: String
    Definition Classes
    TraversableLike → GenTraversableLike
  106. def sum[B >: Key](implicit num: Numeric[B]): B
    Definition Classes
    TraversableOnce → GenTraversableOnce
  107. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  108. def tail: Iterable[Key]
    Definition Classes
    TraversableLike → GenTraversableLike
  109. def tails: Iterator[Iterable[Key]]
    Definition Classes
    TraversableLike
  110. def take(n: Int): Iterable[Key]
    Definition Classes
    IterableLike → TraversableLike → GenTraversableLike
  111. def takeRight(n: Int): Iterable[Key]
    Definition Classes
    IterableLike
  112. def takeWhile(p: (Key) ⇒ Boolean): Iterable[Key]
    Definition Classes
    IterableLike → TraversableLike → GenTraversableLike
  113. def thisCollection: Iterable[Key]
    Attributes
    protected[this]
    Definition Classes
    IterableLike → TraversableLike
  114. def to[Col[_]](implicit cbf: CanBuildFrom[Nothing, Key, Col[Key]]): Col[Key]
    Definition Classes
    TraversableLike → TraversableOnce → GenTraversableOnce
  115. def toArray[B >: Key](implicit arg0: ClassTag[B]): Array[B]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  116. def toBuffer[B >: Key]: Buffer[B]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  117. def toCollection(repr: Iterable[Key]): Iterable[Key]
    Attributes
    protected[this]
    Definition Classes
    IterableLike → TraversableLike
  118. def toIndexedSeq: IndexedSeq[Key]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  119. def toIterable: Iterable[Key]
    Definition Classes
    IterableLike → TraversableOnce → GenTraversableOnce
  120. def toIterator: Iterator[Key]
    Definition Classes
    IterableLike → TraversableLike → GenTraversableOnce
    Annotations
    @deprecatedOverriding( ... , "2.11.0" )
  121. def toList: List[Key]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  122. def toMap[T, U](implicit ev: <:<[Key, (T, U)]): Map[T, U]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  123. def toSeq: Seq[Key]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  124. def toSet[B >: Key]: Set[B]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  125. def toStream: Stream[Key]
    Definition Classes
    IterableLike → TraversableLike → GenTraversableOnce
  126. def toString(): String
    Definition Classes
    IndexPriorityQueue → TraversableLike → AnyRef → Any
  127. def toTraversable: Traversable[Key]
    Definition Classes
    TraversableLike → TraversableOnce → GenTraversableOnce
    Annotations
    @deprecatedOverriding( ... , "2.11.0" )
  128. def toVector: Vector[Key]
    Definition Classes
    TraversableOnce → GenTraversableOnce
  129. def transpose[B](implicit asTraversable: (Key) ⇒ GenTraversableOnce[B]): Iterable[Iterable[B]]
    Definition Classes
    GenericTraversableTemplate
    Annotations
    @migration
    Migration

    (Changed in version 2.9.0) transpose throws an IllegalArgumentException if collections are not uniformly sized.

  130. def unzip[A1, A2](implicit asPair: (Key) ⇒ (A1, A2)): (Iterable[A1], Iterable[A2])
    Definition Classes
    GenericTraversableTemplate
  131. def unzip3[A1, A2, A3](implicit asTriple: (Key) ⇒ (A1, A2, A3)): (Iterable[A1], Iterable[A2], Iterable[A3])
    Definition Classes
    GenericTraversableTemplate
  132. def update(i: Int, item: Key): Unit

    Change the key associated with index i.

    Change the key associated with index i.

    Exceptions thrown

    IndexOutOfBoundsException if not 0 <= i < length

    NoSuchElementException if no key is associated with index i

  133. def view(from: Int, until: Int): IterableView[Key, Iterable[Key]]
    Definition Classes
    IterableLike → TraversableLike
  134. def view: IterableView[Key, Iterable[Key]]
    Definition Classes
    IterableLike → TraversableLike
  135. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  136. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  137. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  138. def withFilter(p: (Key) ⇒ Boolean): FilterMonadic[Key, Iterable[Key]]
    Definition Classes
    TraversableLike → FilterMonadic
  139. def zip[A1 >: Key, B, That](that: GenIterable[B])(implicit bf: CanBuildFrom[Iterable[Key], (A1, B), That]): That
    Definition Classes
    IterableLike → GenIterableLike
  140. def zipAll[B, A1 >: Key, That](that: GenIterable[B], thisElem: A1, thatElem: B)(implicit bf: CanBuildFrom[Iterable[Key], (A1, B), That]): That
    Definition Classes
    IterableLike → GenIterableLike
  141. def zipWithIndex[A1 >: Key, That](implicit bf: CanBuildFrom[Iterable[Key], (A1, Int), That]): That
    Definition Classes
    IterableLike → GenIterableLike

Inherited from Iterable[Key]

Inherited from IterableLike[Key, Iterable[Key]]

Inherited from Equals

Inherited from GenIterable[Key]

Inherited from GenIterableLike[Key, Iterable[Key]]

Inherited from Traversable[Key]

Inherited from GenTraversable[Key]

Inherited from GenericTraversableTemplate[Key, Iterable]

Inherited from TraversableLike[Key, Iterable[Key]]

Inherited from GenTraversableLike[Key, Iterable[Key]]

Inherited from Parallelizable[Key, ParIterable[Key]]

Inherited from TraversableOnce[Key]

Inherited from GenTraversableOnce[Key]

Inherited from FilterMonadic[Key, Iterable[Key]]

Inherited from HasNewBuilder[Key, Iterable[Key] @scala.annotation.unchecked.uncheckedVariance]

Inherited from AnyRef

Inherited from Any

Ungrouped