/SList

C++ implementation of simple linked list for Programming Techniques (C++) course

Primary LanguageC++

Kurssiprojekti

C++ Ohjelmointitekniikka


Kurssiprojektin tehtävänä oli luoda yhteen suuntaan linkitetty lista, joka säilöö string-arvoja ja
käyttäytyy STL-containerin tavoin. Ratkaisuni listalle on hyvin yksinkertainen: listan
funktionaalisuuden toteuttaa luokka SList, joka käyttää tietorakenteenaan linkitettyjä
SListNode-olioita. STL-tyyppiset iteraattorit on toteutettu sisäluokan avulla. Luokkien
määrittelyt on kirjoitettu SList.h-tiedostoon, ja toteutus SList.cpp-tiedostoon. SList ylläpitää
pointtereita sekä listan alkuun, että loppuun, ja näiden avulla tarjoaa siltä vaaditun
toiminnallisuuden. Funktioiden aikavaatimus on koetettu pitää järkevässä luokassa, mutta
eritoten toteutuksissa on keskitytty oikeellisuuden ylläpitämiseen. Luokalla on speksin
määrittelemä check()-funktio, mutta ilman dramaattisia muutoksia, luokan invariantti säilyy
kaikkien operaatioiden kohdalla.


Luokan testaus on suoritettu main.cpp-tiedostossa toteutetussa testDriver()-funktiossa.
testDriver() ajaa läpi kattavan joukon testejä, ja ylläpitää numeroa tavatuista virheistä.
testDriver() dokumentoi itse tekemisiään raportoimalla stdouttiin, mutta eri testit on myös
eroteltu lähdekoodissa kommentoinnilla.


Luokan toteuttaminen oli yllättävän yksinkertainen projekti, enkä törmännyt odottamattomiin
esteisiin, kunhan sain langan päästä kiinni. Koskapa tehtävä oli kovin suoraviivainen, en keksi
hirveästi enempää kommentoitavaa; koodi puhuu puolestaan ja testit toimivat.


Kimmo Heikkinen
13.12.2010