generic
type elem is private;
type priority is (<>);
package priority_queue_pkg is
type p_sor is private;
function empty(s:in p_sor) return boolean;
procedure push(s:in out p_sor;p: in priority; e:in elem);
procedure top(s:in out p_sor;p: out priority; e:out elem);
procedure pop(s:in out p_sor);
function size(s:in p_sor) return natural;
private
type sorelem is record
adat:elem;
prior:priority;
end record;
type tomb is array(integer range <>) of sorelem;
type p_sor (MAXDB:integer) is record
elemek:tomb(1..MAXDB);
size:integer:=0;
last:integer:=1;
end record;
procedure emel(A:in out p_sor; i:in integer);
procedure sully(A: in out p_sor;uu:in integer;v:in integer);
end priority_queue_pkg;