sealed abstract class Heap[A] extends AnyRef
An efficient, asymptotically optimal, implementation of priority queues extended with support for efficient size.
The implementation of 'Heap' is based on bootstrapped skew binomial heaps as described by: G. Brodal and C. Okasaki , "Optimal Purely Functional Priority Queues", Journal of Functional Programming 6:839-857 (1996),
Based on the heaps Haskell library by Edward Kmett
- Source
- Heap.scala
- Alphabetic
- By Inheritance
- Heap
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
+(a: A)(implicit o: Order[A]): Heap[A]
Alias for insert
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def adjustMin(f: (A) ⇒ A): Heap[A]
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
break(p: (A) ⇒ Boolean): (Heap[A], Heap[A])
Returns a tuple where the first element is a heap consisting of the longest prefix of least elements in this heap that do not satisfy the given predicate, and the second element is the remainder of the elements.
Returns a tuple where the first element is a heap consisting of the longest prefix of least elements in this heap that do not satisfy the given predicate, and the second element is the remainder of the elements. O(n log n)
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
def
deleteMin: Heap[A]
Delete the minimum key from the heap and return the resulting heap.
Delete the minimum key from the heap and return the resulting heap. O(log n)
-
def
drop(n: Int): Heap[A]
Return a heap consisting of all the members of this heap except for the least n.
Return a heap consisting of all the members of this heap except for the least n. O(n log n)
-
def
dropWhile(p: (A) ⇒ Boolean): Heap[A]
Returns a heap consisting of the longest prefix of least elements of this heap that do not satisfy the predicate.
Returns a heap consisting of the longest prefix of least elements of this heap that do not satisfy the predicate. O(n log n)
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- def exists(f: (A) ⇒ Boolean): Boolean
-
def
filter(p: (A) ⇒ Boolean): Heap[A]
Filter the heap, retaining only values that satisfy the predicate.
Filter the heap, retaining only values that satisfy the predicate. O(n)
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
flatMap[B](f: (A) ⇒ Heap[B])(implicit arg0: Order[B]): Heap[B]
Construct heaps from each element in this heap and union them together into a new heap.
Construct heaps from each element in this heap and union them together into a new heap. O(n)
- def foldRight[B](z: B)(f: (A, ⇒ B) ⇒ B): B
- def forall(f: (A) ⇒ Boolean): Boolean
- def foreach(f: (A) ⇒ Unit): Unit
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
insert(a: A)(implicit o: Order[A]): Heap[A]
Insert a new value into the heap.
Insert a new value into the heap. O(1)
- def insertAll(as: TraversableOnce[A])(implicit o: Order[A]): Heap[A]
- def insertAllF[F[_]](as: F[A])(implicit F: Foldable[F], o: Order[A]): Heap[A]
-
def
isEmpty: Boolean
Is the heap empty? O(1)
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
map[B](f: (A) ⇒ B)(implicit arg0: Order[B]): Heap[B]
Map a function over the heap, returning a new heap ordered appropriately.
Map a function over the heap, returning a new heap ordered appropriately. O(n)
-
def
minimum: A
Get the minimum key on the (nonempty) heap.
Get the minimum key on the (nonempty) heap. O(1)
-
def
minimumO: Option[A]
Get the minimum key on the (nonempty) heap.
Get the minimum key on the (nonempty) heap. O(1)
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
nonEmpty: Boolean
Is the heap populated? O(1)
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
def
nub: Heap[A]
Remove duplicate entries from the heap.
Remove duplicate entries from the heap. O(n log n)
-
def
partition(p: (A) ⇒ Boolean): (Heap[A], Heap[A])
Partition the heap according to a predicate.
Partition the heap according to a predicate. The first heap contains all elements that satisfy the predicate. The second contains all elements that fail the predicate. O(n)
-
def
size: Int
The number of elements in the heap.
The number of elements in the heap. O(1)
-
def
span(p: (A) ⇒ Boolean): (Heap[A], Heap[A])
Returns a tuple where the first element is a heap consisting of the longest prefix of least elements in this heap that satisfy the given predicate and the second element is the remainder of the elements.
Returns a tuple where the first element is a heap consisting of the longest prefix of least elements in this heap that satisfy the given predicate and the second element is the remainder of the elements. O(n log n)
-
def
split(a: A): (Heap[A], Heap[A], Heap[A])
Partition the heap of the elements that are less than, equal to, and greater than a given value.
Partition the heap of the elements that are less than, equal to, and greater than a given value. O(n)
-
def
splitAt(n: Int): (Heap[A], Heap[A])
Split into two heaps, the first containing the n least elements, the second containing the n greatest elements.
Split into two heaps, the first containing the n least elements, the second containing the n greatest elements. O(n log n)
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
take(n: Int): Heap[A]
Return a heap consisting of the least n elements of this heap.
Return a heap consisting of the least n elements of this heap. O(n log n)
-
def
takeWhile(p: (A) ⇒ Boolean): Heap[A]
Returns a heap consisting of the longest prefix of least elements of this heap that satisfy the predicate.
Returns a heap consisting of the longest prefix of least elements of this heap that satisfy the predicate. O(n log n)
- def toList: List[A]
- def toStream: Stream[A]
-
def
toString(): String
- Definition Classes
- Heap → AnyRef → Any
- def toUnsortedList: List[A]
- def toUnsortedStream: Stream[A]
-
def
traverse[F[_], B](f: (A) ⇒ F[B])(implicit arg0: Applicative[F], arg1: Order[B]): F[Heap[B]]
Traverse the elements of the heap in sorted order and produce a new heap with applicative effects.
Traverse the elements of the heap in sorted order and produce a new heap with applicative effects. O(n log n)
-
def
uncons: Option[(A, Heap[A])]
Split the heap into the minimum element and the remainder.
Split the heap into the minimum element and the remainder. O(log n)
-
def
union(as: Heap[A]): Heap[A]
Meld the values from two heaps into one heap.
Meld the values from two heaps into one heap. O(1)
-
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
- @native() @throws( ... )