Pino vs. jono
Pino on järjestetty luettelo, johon listan kohteiden lisääminen ja poistaminen voidaan tehdä vain yhdessä päässä, jota kutsutaan yläosaksi. Tästä syystä pinoa pidetään Last in First out (LIFO) -tietorakenteena. Jono on myös järjestetty luettelo, jossa luettelokohteiden lisääminen tapahtuu toisessa päässä, jota kutsutaan takaosaksi, ja kohteiden poistaminen toisesta päästä, jota kutsutaan etupuoleksi. Tämä lisäys- ja poistomekanismi tekee jonosta FIFO (First in First out) -tietorakenteen.
Mikä on pino?
Kuten aiemmin mainittiin, pino on tietorakenne, jossa elementtejä lisätään ja poistetaan vain yhdestä päästä, jota kutsutaan yläosaksi. Pinot sallivat vain kaksi perustoimintoa, joita kutsutaan push and popiksi. Työntö lisää uuden elementin pinon yläosaan. Pop-toiminto poistaa elementin pinon yläosasta. Jos pino on jo täynnä, työntöoperaation aikana sitä pidetään pinon ylivuotona. Jos pop-operaatio suoritetaan jo tyhjälle pinolle, sitä pidetään pinon alivuotona. Pinoon suoritettavien toimintojen pienen määrän vuoksi sitä pidetään rajoitettuna tietorakenteena. Lisäksi push- ja pop-operaatioiden määrittelytavan mukaan on selvää, että pinoon viimeiseksi lisätyt elementit menevät ensin pinosta. Siksi pinoa pidetään LIFO-tietorakenteena.
Mikä on jono?
Jonossa elementit lisätään jonon takaosasta ja poistetaan jonon etuosasta. Koska ensin lisätyt elementit poistetaan jonosta ensin, se ylläpitää FIFO-järjestystä. Tästä elementtien lisäämisen ja poistamisen järjestyksestä johtuen jono edustaa kassalinjan ideaa. Jonon tukemat yleiset toiminnot ovat jono- ja jono-operaatiot. Enable-jono-toiminto lisää elementin jonon takaosaan, kun taas jono-toiminto poistaa elementin jonon etuosasta. Yleensä jonot eivät rajoita jonoon lisättävien elementtien määrää muistirajoitusten lisäksi.
Mitä eroa on pinossa ja jonossa?
Vaikka sekä pinot että jonot ovat eräänlaisia järjestettyjä luetteloita, niillä on joitain tärkeitä eroja. Pinoissa kohteiden lisääminen tai poistaminen voidaan tehdä vain toisesta päästä, jota kutsutaan ylhäältä, kun taas jonoissa kohteita lisätään toisesta päästä, jota kutsutaan takaosaksi, ja kohteiden poistaminen toisesta päästä, jota kutsutaan etupuoleksi. Pino, pinoa viimeksi lisätyt kohteet poistetaan ensin pinosta. Siksi pinoa pidetään LIFO-tietorakenteena. Jonoissa ensin lisätyt kohteet poistetaan ensin jonosta. Siksi jonoa pidetään FIFO-tietorakenteena.
Liittyvä linkki:
Ero pinon ja kasan välillä