previous next Up Title Contents Index

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 suurinpiirtein 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.173 etsi_nimi

Kirjoita metodi etsi_nimi, joka etsii jäsenistöstä ensimmäisen henkilön, jolla on TÄSMÄLLEEN parametrina 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?


previous next Up Title Contents Index