New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Pino – Wikipedia

Pino

Wikipedia

Tietojenkäsittelytieteessä pino (engl. stack) on abstrakti tietotyyppi, jonka toimintaperiaate on viimeksi sisään, ensimmäiseksi ulos (LIFO-periaate, Last In First Out; vrt. jono). Sitä voidaan verrata pöydällä olevaan lautaspinoon, koska sen alta tai keskivälistä ei voi poimia alkioita. Pinolle on määritelty seuraavat operaatiot:

  • push: lisää alkion pinon päällimmäiseksi
  • pop: poimii pinon päällimmäisen alkion (eli samanaikaisesti palauttaa ja poistaa sen)
  • empty: tarkistaa, onko pino on tyhjä

Lisäksi usein:

  • peek tai top: palauttaa pinon päällimmäisen alkion poistamatta sitä (sama kuin peräkkäiset pop ja push)

Joskus myös:

  • full: tarkistaa, onko pino täysi

Kaikki pinolle määritetyt operaatiot saadaan suoriutumaan vakioajassa eli koosta riippumatta, jos se toteutetaan esimerkiksi linkitettynä listana.

Suorittimen käskykantaan on lähes aina sisäänrakennettu tehokas ajonaikainen pino, joka hallitsee aliohjelmien kutsu- ja paluuosoitteita, kutsuparametreja ja paikallisia muuttujia. Se on välttämätön rekursiivisten aliohjelmien toteuttamiseen.

Sisällysluettelo

[muokkaa] Sovelluksia

[muokkaa] Jäsennys

Pinoa voidaan käyttää apuna jäsentämisessä. Jos tietokoneen pitää laskea laskutoimitus:

((1+2)*(3+4)/3)+3 = 10

niin yhtälö voidaan muuttaa postfix-muotoon eli muotoon, jossa ei tarvita sulkuja. Muunnos voidaan tehdä Shunting yard -algoritmilla, joka sekin käyttää pinoa.

1 2 + 3 4 + * 3 / 3 +

Tämän jälkeen laskutoimitus on helppo toteuttaa pinon avulla: Edetään askel askeleelta vasemmalta oikealle lisäten lukuja pinoon. Kun törmätään operaattoriin, pinosta poimitaan tarvittava määrä lukuja ja tehdään operaattorin määrittämä laskutoimitus niiden välillä. Laskutoimituksen tulos tallennetaan takaisin pinoon. Syötteen loputtua vastaus on luettavissa pinosta.

syöte operaatio pinon sisältö
  [ ]
1 Lisää [ 1 ]
2 Lisää [ 1, 2 ]
+ Summa [ 3 ]
3 Lisää [ 3, 3 ]
4 Lisää [ 3, 3, 4 ]
+ Summa [ 3, 7 ]
* Tulo [ 21 ]
3 Lisää [ 21, 3 ]
/ Osamäärä [ 7 ]
3 Lisää [ 7, 3 ]
+ Summa [ 10 ]

[muokkaa] Ajonaikainen pino

Tietokoneisiin on lähes aina sisäänrakennettu erityinen ajonaikainen pino, joka on varattu aliohjelmakutsujen toteutukseen ja toimii nopeilla konekäskyillä. Aliohjelman kutsussa pinoon lisätään ainakin:

  • välitettävät parametrit
  • paluuosoite
  • uudet paikalliset muuttujat

Tätä arvokokoelmaa kutsutaan aktivaatiotietueeksi. Se lisätään pinoon jokaisen kutsun yhteydessä, ja poistetaan aliohjelman palatessa. Näin aliohjelmia voidaan kutsua sisäkkäin ja ne voivat myös kutsua itseään.

Ajonaikainen pino on yleisesti toteutettu kiinteänä muistialueena ja pinon päähän osoittavana pino-osoitinrekisterinä. Päättymätön rekursio aiheuttaakin pinon täyttymisen ja ajonaikaisen virheen.

[muokkaa] Katso myös

Vastaavia abstrakteja tietotyyppejä:

Toteutukseen sopivia tietorakenteita:

[muokkaa] Aiheesta muualla

Nettilaskukone, jolla voi kokeilla laskemista pinon avulla

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu