TRA - kirjasto

# Tietorakenteet ja algoritmit

#### Algoritmikirjasto Tietorakenteet ja algoritmit - kurssin käyttöön

1999 Matti Meriläinen - Tietojenkäsittelytieteen laitos, Joensuun Yliopisto

2000 Tapani Katainen - Tietojenkäsittelytieteen laitos, Joensuun Yliopisto

Sisällysluettelo

- Johdanto
- Kirjaston käyttöönotto
- Tietorakenteiden kuvaukset
- Funktioiden esittelyt
- Esimerkkejä

### Johdanto

Yhtenä ”Tietorakenteet ja algoritmit” – kurssin ongelmana on ollut se, että harjoitustehtäviä ei ole voitu tarkastaa muulla tavoin kuin vaivalloisella ja aikaa vievällä pöytätestauksella. Kurssin kielenä oli esimerkiksi vuonna 1998 joko Pascal– tai C–pohjainen pseudokieli. Vaikka käytettävä kieli onkin samantekevää – olkoon se C, Pascal tai jokin muu, motivaatiota tehtyjen ohjelmien oikeellisuuden tarkastamiseen nostaa varmasti se, että oman lähdekielisen koodinsa voi kääntää suorituskelpoiseksi ohjelmaksi ja tarkastella esimerkiksi pinon sisältöä ajon eri vaiheissa.

TRA–kirjaston tarkoitus on tarjota kurssilla käsiteltävät tietorakenteet opiskelijoiden käyttöön sekä Pascalilla että C–kielellä toteutettuna. Tietorakenteiden hallintaan tarkoitettujen aliohjelmien nimeäminen ja parametrien järjestys ovat (kielten rajoituksien ja sääntöjen puitteissa) samat kuin kurssilla esiteltävien ja käytettyjen aliohjelmien.

### Kirjaston käyttöönotto

Ansi-C:ssä (gcc) kirjaston esittelyt otetaan mukaan lisäämällä ohjelman include-riveihin:
`#include "TRA.h"`
Ohjelmaa käännettäessä käytetään gcc-kääntäjän sijaan komentoa trac. Esimerkiksi käännettäessä ohjelmaa MyProg.c kääntäminen tapahtuisi:
`%trac MyProg.c`
tai
`%trac -o ohjelma MyProg.c`

GNU-Pascal (gpc) kirjaston esittelyt otetaan mukaan lisäämällä ohjelman alkuun:
`import tra;`
Esimerkiksi käännettäessä ohjelmaa MyProg.p kääntäminen tapahtuisi:
Ohjelma käännetään komennolla
`trap oma_ohjelma.p`
tai
`trap -o omasuorittuva oma_ohjelma.p`

### Tietorakenteiden kuvaukset

- Uudet tyypit
- Lista
- Jono
- Pino
- Pakka
- Yleinen puu
- Binaaripuu
- Joukko
- Prioriteettijono
- Suuntaamaton verkko
- Suunnattu verkko

### Funktioiden esittelyt:

- Lista
- Jono
- Pino
- Pakka
- Yleinen puu
- Binaaripuu
- Joukko
- Prioriteettijono
- Suuntaamaton verkko
- Suunnattu verkko
- Käytettävissä olevat lyhenteet (C:llä ohjelmoitaessa)

### Esimerkkejä

- Esimerkit Pascalilla
- Esimerkit C-kielellä
- Kuinka?
- TRA kurssin esimerkkisivu

© 1999 Matti Meriläinen - Tietojenkäsittelytieteen laitos, Joensuun Yliopisto

© 2000 Tapani Katainen - Tietojenkäsittelytieteen laitos, Joensuun Yliopisto