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
- Alphabetic
- By Inheritance
- IndexPriorityQueue
- Iterable
- IterableLike
- Equals
- GenIterable
- GenIterableLike
- Traversable
- GenTraversable
- GenericTraversableTemplate
- TraversableLike
- GenTraversableLike
- Parallelizable
- TraversableOnce
- GenTraversableOnce
- FilterMonadic
- HasNewBuilder
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
Type Members
-
type
Self = Iterable[Key]
- Attributes
- protected[this]
- Definition Classes
- TraversableLike
-
class
WithFilter extends FilterMonadic[A, Repr]
- Definition Classes
- TraversableLike
Abstract Value Members
-
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
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
def
++[B >: Key, That](that: GenTraversableOnce[B])(implicit bf: CanBuildFrom[Iterable[Key], B, That]): That
- Definition Classes
- TraversableLike → GenTraversableLike
-
def
++:[B >: Key, That](that: Traversable[B])(implicit bf: CanBuildFrom[Iterable[Key], B, That]): That
- Definition Classes
- TraversableLike
-
def
++:[B >: Key, That](that: TraversableOnce[B])(implicit bf: CanBuildFrom[Iterable[Key], B, That]): That
- Definition Classes
- TraversableLike
-
def
/:[B](z: B)(op: (B, Key) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
:\[B](z: B)(op: (Key, B) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
addString(b: StringBuilder): StringBuilder
- Definition Classes
- TraversableOnce
-
def
addString(b: StringBuilder, sep: String): StringBuilder
- Definition Classes
- TraversableOnce
-
def
addString(b: StringBuilder, start: String, sep: String, end: String): StringBuilder
- Definition Classes
- TraversableOnce
-
def
aggregate[B](z: ⇒ B)(seqop: (B, Key) ⇒ B, combop: (B, B) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
apply(i: Int): Key
- returns
the key associated with index i
- Exceptions thrown
IndexOutOfBoundsException
if not0 <= i < length
NoSuchElementException
if no key is associated with index i
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
canEqual(that: Any): Boolean
- Definition Classes
- IterableLike → Equals
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
collect[B, That](pf: PartialFunction[Key, B])(implicit bf: CanBuildFrom[Iterable[Key], B, That]): That
- Definition Classes
- TraversableLike → GenTraversableLike
-
def
collectFirst[B](pf: PartialFunction[Key, B]): Option[B]
- Definition Classes
- TraversableOnce
-
def
companion: GenericCompanion[Iterable]
- Definition Classes
- Iterable → GenIterable → Traversable → GenTraversable → GenericTraversableTemplate
-
def
contains(i: Int): Boolean
- returns
if index i is associated with some key
- Exceptions thrown
IndexOutOfBoundsException
if not0 <= i < length
-
def
copyToArray[B >: Key](xs: Array[B], start: Int, len: Int): Unit
- Definition Classes
- IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
-
def
copyToArray[B >: Key](xs: Array[B]): Unit
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
copyToArray[B >: Key](xs: Array[B], start: Int): Unit
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
copyToBuffer[B >: Key](dest: Buffer[B]): Unit
- Definition Classes
- TraversableOnce
-
def
count(p: (Key) ⇒ Boolean): Int
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
delete(i: Int): Unit
Remove the key associated with index i.
Remove the key associated with index i.
- Exceptions thrown
IndexOutOfBoundsException
if not0 <= i < length
NoSuchElementException
if no key is associated with index i
-
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
-
def
drop(n: Int): Iterable[Key]
- Definition Classes
- IterableLike → TraversableLike → GenTraversableLike
-
def
dropRight(n: Int): Iterable[Key]
- Definition Classes
- IterableLike
-
def
dropWhile(p: (Key) ⇒ Boolean): Iterable[Key]
- Definition Classes
- TraversableLike → GenTraversableLike
-
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 queueIndexOutOfBoundsException
if not0 <= i < length
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
exists(p: (Key) ⇒ Boolean): Boolean
- Definition Classes
- IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
-
def
filter(p: (Key) ⇒ Boolean): Iterable[Key]
- Definition Classes
- TraversableLike → GenTraversableLike
-
def
filterNot(p: (Key) ⇒ Boolean): Iterable[Key]
- Definition Classes
- TraversableLike → GenTraversableLike
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
find(p: (Key) ⇒ Boolean): Option[Key]
- Definition Classes
- IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
-
def
flatMap[B, That](f: (Key) ⇒ GenTraversableOnce[B])(implicit bf: CanBuildFrom[Iterable[Key], B, That]): That
- Definition Classes
- TraversableLike → GenTraversableLike → FilterMonadic
-
def
flatten[B](implicit asTraversable: (Key) ⇒ GenTraversableOnce[B]): Iterable[B]
- Definition Classes
- GenericTraversableTemplate
-
def
fold[A1 >: Key](z: A1)(op: (A1, A1) ⇒ A1): A1
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
foldLeft[B](z: B)(op: (B, Key) ⇒ B): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
foldRight[B](z: B)(op: (Key, B) ⇒ B): B
- Definition Classes
- IterableLike → TraversableOnce → GenTraversableOnce
-
def
forall(p: (Key) ⇒ Boolean): Boolean
- Definition Classes
- IterableLike → TraversableLike → TraversableOnce → GenTraversableOnce
-
def
foreach[U](f: (Key) ⇒ U): Unit
- Definition Classes
- IterableLike → TraversableLike → GenTraversableLike → TraversableOnce → GenTraversableOnce → FilterMonadic
-
def
genericBuilder[B]: Builder[B, Iterable[B]]
- Definition Classes
- GenericTraversableTemplate
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
groupBy[K](f: (Key) ⇒ K): Map[K, Iterable[Key]]
- Definition Classes
- TraversableLike → GenTraversableLike
-
def
grouped(size: Int): Iterator[Iterable[Key]]
- Definition Classes
- IterableLike
-
def
hasDefiniteSize: Boolean
- Definition Classes
- TraversableLike → TraversableOnce → GenTraversableOnce
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
def
head: Key
- Definition Classes
- IterableLike → TraversableLike → GenTraversableLike
-
def
headOption: Option[Key]
- Definition Classes
- TraversableLike → GenTraversableLike
-
val
index: Array[Int]
- Attributes
- protected
-
def
init: Iterable[Key]
- Definition Classes
- TraversableLike → GenTraversableLike
-
def
inits: Iterator[Iterable[Key]]
- Definition Classes
- TraversableLike
-
def
isEmpty: Boolean
- Definition Classes
- IndexPriorityQueue → IterableLike → GenericTraversableTemplate → TraversableLike → TraversableOnce → GenTraversableOnce
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
isTraversableAgain: Boolean
- Definition Classes
- TraversableLike → GenTraversableLike → GenTraversableOnce
-
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
-
val
key: Array[Key]
- Attributes
- protected
-
def
last: Key
- Definition Classes
- TraversableLike → GenTraversableLike
-
def
lastOption: Option[Key]
- Definition Classes
- TraversableLike → GenTraversableLike
- val length: Int
-
def
map[B, That](f: (Key) ⇒ B)(implicit bf: CanBuildFrom[Iterable[Key], B, That]): That
- Definition Classes
- TraversableLike → GenTraversableLike → FilterMonadic
-
def
max[B >: Key](implicit cmp: Ordering[B]): Key
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
maxBy[B](f: (Key) ⇒ B)(implicit cmp: Ordering[B]): Key
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
min[B >: Key](implicit cmp: Ordering[B]): Key
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
minBy[B](f: (Key) ⇒ B)(implicit cmp: Ordering[B]): Key
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
mkString: String
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
mkString(sep: String): String
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
mkString(start: String, sep: String, end: String): String
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
var
n: Int
- Attributes
- protected
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
newBuilder: Builder[Key, Iterable[Key]]
- Attributes
- protected[this]
- Definition Classes
- GenericTraversableTemplate → HasNewBuilder
-
def
nonEmpty: Boolean
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
par: ParIterable[Key]
- Definition Classes
- Parallelizable
-
def
parCombiner: Combiner[Key, ParIterable[Key]]
- Attributes
- protected[this]
- Definition Classes
- TraversableLike → Parallelizable
-
def
partition(p: (Key) ⇒ Boolean): (Iterable[Key], Iterable[Key])
- Definition Classes
- TraversableLike → GenTraversableLike
-
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
-
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
-
def
product[B >: Key](implicit num: Numeric[B]): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduce[A1 >: Key](op: (A1, A1) ⇒ A1): A1
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduceLeft[B >: Key](op: (B, Key) ⇒ B): B
- Definition Classes
- TraversableOnce
-
def
reduceLeftOption[B >: Key](op: (B, Key) ⇒ B): Option[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduceOption[A1 >: Key](op: (A1, A1) ⇒ A1): Option[A1]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
reduceRight[B >: Key](op: (Key, B) ⇒ B): B
- Definition Classes
- IterableLike → TraversableOnce → GenTraversableOnce
-
def
reduceRightOption[B >: Key](op: (Key, B) ⇒ B): Option[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
repr: Iterable[Key]
- Definition Classes
- TraversableLike → GenTraversableLike
-
def
reversed: List[Key]
- Attributes
- protected[this]
- Definition Classes
- TraversableOnce
-
def
sameElements[B >: Key](that: GenIterable[B]): Boolean
- Definition Classes
- IterableLike → GenIterableLike
-
def
scan[B >: Key, That](z: B)(op: (B, B) ⇒ B)(implicit cbf: CanBuildFrom[Iterable[Key], B, That]): That
- Definition Classes
- TraversableLike → GenTraversableLike
-
def
scanLeft[B, That](z: B)(op: (B, Key) ⇒ B)(implicit bf: CanBuildFrom[Iterable[Key], B, That]): That
- Definition Classes
- TraversableLike → GenTraversableLike
-
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.
-
def
seq: Iterable[Key]
- Definition Classes
- Iterable → GenIterable → Traversable → GenTraversable → Parallelizable → TraversableOnce → GenTraversableOnce
-
def
size: Int
- returns
the number of keys in this priority queue
- Definition Classes
- IndexPriorityQueue → GenTraversableLike → TraversableOnce → GenTraversableOnce
-
def
sizeHintIfCheap: Int
- Attributes
- protected[scala.collection]
- Definition Classes
- GenTraversableOnce
-
def
slice(from: Int, until: Int): Iterable[Key]
- Definition Classes
- IterableLike → TraversableLike → GenTraversableLike
-
def
sliding(size: Int, step: Int): Iterator[Iterable[Key]]
- Definition Classes
- IterableLike
-
def
sliding(size: Int): Iterator[Iterable[Key]]
- Definition Classes
- IterableLike
-
def
span(p: (Key) ⇒ Boolean): (Iterable[Key], Iterable[Key])
- Definition Classes
- TraversableLike → GenTraversableLike
-
def
splitAt(n: Int): (Iterable[Key], Iterable[Key])
- Definition Classes
- TraversableLike → GenTraversableLike
-
def
stringPrefix: String
- Definition Classes
- TraversableLike → GenTraversableLike
-
def
sum[B >: Key](implicit num: Numeric[B]): B
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
tail: Iterable[Key]
- Definition Classes
- TraversableLike → GenTraversableLike
-
def
tails: Iterator[Iterable[Key]]
- Definition Classes
- TraversableLike
-
def
take(n: Int): Iterable[Key]
- Definition Classes
- IterableLike → TraversableLike → GenTraversableLike
-
def
takeRight(n: Int): Iterable[Key]
- Definition Classes
- IterableLike
-
def
takeWhile(p: (Key) ⇒ Boolean): Iterable[Key]
- Definition Classes
- IterableLike → TraversableLike → GenTraversableLike
-
def
thisCollection: Iterable[Key]
- Attributes
- protected[this]
- Definition Classes
- IterableLike → TraversableLike
-
def
to[Col[_]](implicit cbf: CanBuildFrom[Nothing, Key, Col[Key]]): Col[Key]
- Definition Classes
- TraversableLike → TraversableOnce → GenTraversableOnce
-
def
toArray[B >: Key](implicit arg0: ClassTag[B]): Array[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toBuffer[B >: Key]: Buffer[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toCollection(repr: Iterable[Key]): Iterable[Key]
- Attributes
- protected[this]
- Definition Classes
- IterableLike → TraversableLike
-
def
toIndexedSeq: IndexedSeq[Key]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toIterable: Iterable[Key]
- Definition Classes
- IterableLike → TraversableOnce → GenTraversableOnce
-
def
toIterator: Iterator[Key]
- Definition Classes
- IterableLike → TraversableLike → GenTraversableOnce
- Annotations
- @deprecatedOverriding( ... , "2.11.0" )
-
def
toList: List[Key]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toMap[T, U](implicit ev: <:<[Key, (T, U)]): Map[T, U]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toSeq: Seq[Key]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toSet[B >: Key]: Set[B]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
def
toStream: Stream[Key]
- Definition Classes
- IterableLike → TraversableLike → GenTraversableOnce
-
def
toString(): String
- Definition Classes
- IndexPriorityQueue → TraversableLike → AnyRef → Any
-
def
toTraversable: Traversable[Key]
- Definition Classes
- TraversableLike → TraversableOnce → GenTraversableOnce
- Annotations
- @deprecatedOverriding( ... , "2.11.0" )
-
def
toVector: Vector[Key]
- Definition Classes
- TraversableOnce → GenTraversableOnce
-
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 anIllegalArgumentException
if collections are not uniformly sized.
-
def
unzip[A1, A2](implicit asPair: (Key) ⇒ (A1, A2)): (Iterable[A1], Iterable[A2])
- Definition Classes
- GenericTraversableTemplate
-
def
unzip3[A1, A2, A3](implicit asTriple: (Key) ⇒ (A1, A2, A3)): (Iterable[A1], Iterable[A2], Iterable[A3])
- Definition Classes
- GenericTraversableTemplate
-
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 not0 <= i < length
NoSuchElementException
if no key is associated with index i
-
def
view(from: Int, until: Int): IterableView[Key, Iterable[Key]]
- Definition Classes
- IterableLike → TraversableLike
-
def
view: IterableView[Key, Iterable[Key]]
- Definition Classes
- IterableLike → TraversableLike
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
withFilter(p: (Key) ⇒ Boolean): FilterMonadic[Key, Iterable[Key]]
- Definition Classes
- TraversableLike → FilterMonadic
-
def
zip[A1 >: Key, B, That](that: GenIterable[B])(implicit bf: CanBuildFrom[Iterable[Key], (A1, B), That]): That
- Definition Classes
- IterableLike → GenIterableLike
-
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
-
def
zipWithIndex[A1 >: Key, That](implicit bf: CanBuildFrom[Iterable[Key], (A1, Int), That]): That
- Definition Classes
- IterableLike → GenIterableLike