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.