Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

22.1 Etsiminen

Etsimistä voidaan suorittaa monella tavalla. Mikäli tietorakenne ei tarjoa parempaa vaihtoehtoa, ei ole muuta mahdollisuutta kuin peräkkäishaku. Järjestetystä taulukosta pystyttiin hakemaan binäärihaulla. Puumaisesta rakenteesta voidaan hakea puun ominaisuuksia käyttäen. Joskus voidaan tehdä avuksi hakemistoja, jotka ohjaavat haun suurin piirtein oikealle paikalleen, josta sitten jatketaan jollakin toisella hakumenetelmällä.

C- kielen kirjastosta löytyy funktio bsearch, joka etsii lajitellusta aineistosta binäärihaulla ja palauttaa NULL mikäli ei löydy ja muuten palauttaa osoittimen taulukon löytyneeseen alkioon. Funktion käyttö on vastaava kuin myöhemmin esiteltävän qsort - funktion käyttö, joten emme tässä puutu siihen enempää.

Kerhorekisterissä tietorakenne on varsin alkeellinen, eikä sitä ole ainakaan toistaiseksi edes järjestetty. Siis tietyn jäsenen etsiminen on suoritettava raakana peräkkäishakuna.

Tehtävä 22.166 etsi_nimi

Kirjoita metodi etsi_nimi, joka etsii jäsenistöstä ensimmäisen henkilön, jolla on TÄSMÄLLEEN parametrinä annettu nimi. Funktio palauttaa nimessään löytöpaikan indeksin ja - 1 jollei löydy.
Voitaisiinko metodia käyttää apuna lisäyksessä tarkistamaan onko jäsen jo ennestään tiedostossa?
Voitaisiinko metodia käyttää apuna korjaamisessa tarkistamaan onko nimi muuttunut sellaiseksi, joka on jo ennestään tiedostossa?

Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys