Heap

Simple Heap implementation

Impleementation of Heap data structure

has Callable &.cmp

The comparator function

has Positional[Any] @.data

The array with the heap data

method new

method new(
    +@arr is copy
) returns Mu

Receives a array and transforms that array in a Heap (O(n))

method push

method push(
    $new
) returns Mu

Add a ney value on the Heap

method pop

method pop() returns Mu

Removes and returns the first element of the heap

method peek

method peek() returns Mu

Returns the first element of the heap

method all

method all() returns Mu

Pops the Heap until its empty

Heap

A simple perl6 module implementing the heap data structure.

my Heap $heap .= new: 9, 7, 5, 3, 1;
$heap.push: 8;
say $heap.pop;		# 1
say $heap.pop;		# 3
say $heap.pop;		# 5

say $heap.all		# (7, 8, 9)
my Heap[-*] $heap .= new: <9 7 5 3 1>;
$heap.push: 8;
say $heap.pop;		# 9
say $heap.pop;		# 8
say $heap.pop;		# 7
my Heap[{$^b <=> $^a}] $heap .= new: <9 7 5 3 1>;
$heap.push: 8;
say $heap.pop;		# 9
say $heap.pop;		# 8
say $heap.pop;		# 7
my Heap[*<order>] $heap .= new:
	{:something<ble>, :order<2>},
	{:something<bla>, :order<1>},
	{:something<bli>, :order<3>},
	{:something<blu>, :order<5>},
;
$heap.push: {:something<blo>, :order<4>},
say $heap.pop;		# {:something<bla>, :order<1>}
say $heap.pop;		# {:something<ble>, :order<2>}
say $heap.pop;		# {:something<bli>, :order<3>}

Heap v0.0.1

Simple Heap implementation

Authors

  • Fernando Correa de Oliveira

License

NOASSERTION

Dependencies

Test Dependencies

Provides

  • Heap

The Camelia image is copyright 2009 by Larry Wall. "Raku" is trademark of the Yet Another Society. All rights reserved.