Pino vs. jono
Pino on tilattu luettelo, jossa luettelon kohteet voidaan lisätä ja poistaa vain yhdessä päässä, nimeltään yläosa. Tästä syystä pinoa pidetään viimeisenä ensimmäisenä (LIFO) -rakenteena. Jono on myös tilattu luettelo, jossa luettelon kohteet lisätään toiseen päähän, jota kutsutaan takaosaksi, ja kohteiden poistaminen tapahtuu toisesta päästä, nimeltään etuosa. Tämä lisäys- ja poistomekanismi tekee jonosta FIFO-tiedonsiirtorakenteen.
Mikä on pino?
Kuten aikaisemmin mainittiin, pino on tietorakenne, jossa elementit lisätään ja poistetaan vain yhdestä päästä, nimeltään yläosa. Pinot sallivat vain kaksi perustoimintoa, nimeltään push ja pop. Työnnys lisää uuden elementin pinon yläosaan. Ponnahdustoiminto poistaa elementin pinon yläosasta. Jos pino on jo täynnä, työnnettäessä sitä pidetään pinon ylivuodona. Jos pop-toiminto suoritetaan jo tyhjällä pinossa, sitä pidetään pinon alivuodona. Pinoon suoritettavien operaatioiden pienen määrän vuoksi sitä pidetään rajoitettuna tietorakenteena. Lisäksi push- ja pop-toimintojen määrittelytavan mukaan on selvää, että pinoon viimeksi lisätyt elementit menevät pinosta ensin. Siksi pinoa pidetään LIFO-tietorakenteena.
Mikä on jono?
Jonossa elementit lisätään jonon takaosasta ja poistetaan jonon edestä. Koska ensin lisätyt elementit poistetaan ensin jonosta, se ylläpitää FIFO-järjestystä. Tästä elementtien lisäämis- ja poistamisjärjestyksestä johtuen jono edustaa ideaa kassalle. Jonon tukemat yleiset toiminnot ovat jono- ja jono-operaatiot. En-jonotoiminto lisää elementin jonon takaosaan, kun taas jonon operaatio poistaa elementin jonon edestä. Jonoilla ei yleensä ole rajoitusta jonoon lisättävien elementtien lukumäärälle muistirajoitteiden lisäksi.
Mitä eroa pinolla ja jonolla on??
Vaikka sekä pinot että jonot ovat eräänlaisia tilattuja luetteloita, niillä on joitain tärkeitä eroja. Pinoina kohteiden lisääminen tai poistaminen voidaan tehdä vain yhdestä päästä, jota kutsutaan yläosaksi, kun taas jonoissa kohteiden lisääminen tapahtuu takaosan nimeltä, ja esineiden poistaminen tehdään toisesta päästä, jota kutsutaan eteen. Pinossa viimeksi lisätyt esineet poistetaan ensin pinosta. Siksi pinoa pidetään LIFO-tietorakenteena. Jonoissa ensin lisätyt kohteet poistetaan ensin jonosta. Siksi jonoa pidetään FIFO-tietorakenteena.
Aiheeseen liittyvä linkki:
Pino ja kasa ero