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;