K: Kuinka otan kirjaston käyttöön omassa ohjelmassani?
V: Ohjelmakoodiin on kirjoitettava rivi: import TRA; sekä ohjelma käännetään komennolla: trap ohjelma.p
K: Kuinka luon uuden tietorakenteen?
V: Ensin tietorakenne pitää esitellä ja sitten se pitää alustaa. Koodilohkon lopussa tulee tila vapauttaa.
Esim. listan luominen program malli; var lista : LIST; (*listan esittely*) begin LIST_CREATE(lista); (*listan alustaminen*) ... LIST_FREE(lista); (*tilan vapauttaminen*) end.
K: Kuinka luon aputietorakenteita jotka ovat samaa tyyppiä kuin parametrina saamani pino?
V: Käytät tietorakenteen tyypin palauttavaa funktiota TYPE().
Esim. luo jonon joka on samaa tyyppiä kuin pino procedure malli(pino : STACK); var jono : QUEUE; begin QUEUE_CREATE(jono, STACK_TYPE(pino)); (*jono on nyt samaa tyyppiä kuin pino*) end;
K: Kuinka saan tietorakenteeseen lisättyä satunnaisia lukuja?
V: Käytät satunnaisia kokonaislukuja lisäävää funktiota CONSTRUCT_RANDOM().
Esim. lisätään listaan malli 10 satunnaista kokonaislukua välillä 1-20 LIST_CONSTRUCT_RANDOM(malli, 10, 1, 20);
K: Kuinka toteutan tietorakenteen, jonka jokainen alkio on tietorakenne?
V: Käyttämällä osoitintyyppistä rakennetta VOIDPTR().
Esim. pino jonka alkiot on listoja
program LIST_IN_STACK;
var S:STACK;
L1,L2,L3,L4,L5:LIST;
i:integer;
begin
INT_LIST_CREATE(L1);
INT_LIST_CREATE(L2);
INT_LIST_CREATE(L3);
INT_LIST_CREATE(L4);
VOIDPTR_STACK_CREATE(S);
LIST_CONSTRUCT_RANDOM(L1, 3, 1, 10);
LIST_CONSTRUCT_RANDOM(L4, 1, 1, 10);
VOIDPTR_STACK_PUSH(S, L1);
VOIDPTR_STACK_PUSH(S, L2);
VOIDPTR_STACK_PUSH(S, L3);
VOIDPTR_STACK_PUSH(S, L4);
while (not STACK_EMPTY(S)) do begin
writeln('L:');
LIST_PRINT(PS_TOP(S));
VOIDPTR_STACK_POP(S);
writeln;
end;
end.