Moduł Heap

Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowa

Opis

Heap to moduł autorstwa John'a Macdonald'a - perlowe rozszerzenia do przechowywania częściowo posortowanych danych. Moduł ten dostarcza procedur, które zarządzają kopcem elementów. Kopiec jest częściowo posortowaną strukturą, która jest zawsze zdolna do łatwego wyciągnięcia najmniejszego elementu w strukturze (lub największego, gdy mamy odwrócone porównywanie). Jeśli zbiór elementów zmienia się automatycznie, kopiec posiada mniejszą górę, niż trzymanie zbioru całkowicie posortowanego. Elementy kopca muszą być obiektami Heap::Elem oraz wszystkie elementy wstawione do jednego kopca muszą być wzajemnie zgodne - każdy tej samej klasy lub różnych klas nie różniących się w odniesieniu do interfejsu Heap::Elem.

Download

Instalacja w systemie UNIX'owym

Po rozpakowaniu modułu wydajemy polecenia

perl Makefile.PL make make install

Jeżeli wszystko poszło zgodnie z planem, to możemy już korzystać z możliwości naszego nowego modułu. Sprawdzić, czy został pomyślnie zainstalowany możemy, pisząc chociażby takiego jednolinijkowca: perl -e 'use Heap' Pomyślne wykonanie programu (żadnych komunikatów) daje nadzieję, że moduł jest zainstalowany i będzie działał.

Dostępne metody

Przykłady zastosowań modułu Heap

Ten krótki programik buduje kopiec, następnie wstawia do niego elementy, by na końcu ściągać z niego elementy aż do wyczerpania. use Heap; use strict; my $heap = Heap->new; my $elem; use Heap::Elem::Num(NumElem); foreach $i ( 1..100 ) { $elem = NumElem( $i ); $heap->add( $elem ); } while( defined( $elem = $heap->extract_top ) ) { print "Smallest is ", $elem->val, "\n"; }

Dodatkowe informacje

Jest to moduł przydatny. Pozwala na efektywne przechowywanie danych.

Macierzysta strona dokumentacji do modułu http://search.cpan.org/~jmm/Heap-0.80/lib/Heap.pm

Autor opracowania

Szymon Roziewski

Email: sroziews@manta.univ.gda.pl

Uniwersytet Gdański - Instytut Informatyki - Strona domowa - Perl - Wyklady
[c] Piotr Arłukowicz, materiały z tej strony udostępnione są na licencji GNU.