Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys

5.4.4 Osoittimet

Edellisessä pöytätestissä merkitsimme pienen merkin niiden korttien kohdalle, joita kunakin hetkenä tutkimme. Kun tutkimme esimerkiksi paikoissa 3 ja 10 olevia kortteja ( P2 ja PJ) voisimme sanoa, että muuttuja pien.paikka osoitti korttiin pata 2 ja muuttuja tutki korttiin pata jätkä. Näin ollen voisimme oikeastaan sanoa, että (indeksi)muuttujat pien.paikka ja tutki ovat osoittimia korttipakkaan. Niiden osoittamassa paikassa (indeksit 3 ja 10) on tietyt kortit ( P2 ja PJ).

Lajittelualgoritmi voitaisiin lausua esimerkiksi:

	0. levitä kortit rinnakkain pöydälle
	   osoita vasemman käden etusormella ensimmäiseen korttiin
	1. etsi vasemman käden osoittamasta kohdasta alkaen oikealle
	   pienin kortti ja osoita sitä oikean käden etusormella
	2. vaihda etusormien kohdalla olevat kortit keskenään
	3. siirrä vasemman käden etusormea yksi kortti oikealle päin
	4. 	mikäli vasen sormi vielä kortin päällä, jatka kohdasta 1. 














P
P
P
P
P
P
P
P
P
P
P
P
P
7
3
K
2
5
9
4
6
Q
10
J
A
8
G










G

Osoittimen ja indeksin ero on siinä, että osoittimen tapauksessa emme yleensä koskaan ole kiinnostuneita itse osoittimen arvosta (osoitteesta, siitä indeksistä missä kohdin olemme menossa), vaan osoittimen osoittaman paikan sisällöstä (sormen kohdalla olevan kortin arvo tai ei korttia). Indeksejä käsitellessämme tutkimme monesti myös itse indeksin arvoa ( tutki=3 - > kortit[tutki]=P2).

Osoitin voi tarvittaessa osoittaa myös itse taulukon ulkopuolelle. Mikäli kirjoittaisimme pöydälle numeroita, voisimme osoittaa sormella yhtä hyvin pöydälle kirjoitettuja numeroita (älkää hyvät ihmiset nyt töhrätkö pöytää!) kuin pöydälle levitettyjä kortteja (taulukon alkioita).

Siis indeksit liittyvät kiinteästi taulukoihin ja osoittimet voivat liittyä mihin tahansa tietorakenteisiin alkaen yksinkertaisesta muuttujasta päätyen monimutkaisen lista- tai puurakenteen alkioon.

Tehtävä 5.32 Korttien poisto osoittimia käyttäen

Kirjoita algoritmi kuvakorttien poistamiseksi taulukosta käyttäen osoittimia.
Pöytätestaa algoritmi.


Ylös Edellinen Seuraava Otsikkosivu Hakemisto Sisällys