Pinot ja jonot
Ymmärrätte pinojen (LIFO) ja jonojen (FIFO) tietorakenteet sekä niiden sovellukset.
Pinot ja jonot on ilmainen C Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/3. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu C Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. C Academy-kurssilla on yhteensä 3 oppituntia.
Pinot ja jonot C:ssä
Pinot ja jonot ovat lineaarisia tietorakenteita, joita käytetään tietojen tallentamiseen ja hallintaan.
Tässä oppitunnissa opitte:
- Miten pinot toimivat (LIFO – viimeisenä sisään, ensimmäisenä ulos).
- Miten jonot toimivat (FIFO – ensimmäisenä sisään, ensimmäisenä ulos).
- Miten pinoja ja jonoja toteutetaan C:ssä.

Mikä on pino?
Pino noudattaa periaatetta viimeisenä sisään, ensimmäisenä ulos (LIFO).
Operaatiot:
- Push - Lisää alkion pinon huipulle.
- Pop - Poistaa pinon huipulla olevan alkion.
- Peek - Näyttää pinon huipulla olevan alkion poistamatta sitä.
Esimerkki: pinon toteuttaminen
Tässä ohjelmassa esitellään pino-operaatioita taulukon avulla.
#include <stdio.h>
#define MAX 5
int stack[MAX], top = -1;
void push(int value) {
if (top == MAX - 1) {
printf("Stack Overflow\n");
} else {
stack[++top] = value;
}
}
int pop() {
if (top == -1) {
printf("Stack Underflow\n");
return -1;
} else {
return stack[top--];
}
}
int main() {
push(10);
push(20);
printf("Popped: %d\n", pop());
return 0;
}Mikä on jono?
Jono noudattaa periaatetta ensimmäisenä sisään, ensimmäisenä ulos (FIFO).
Operaatiot:
- Enqueue - Lisää alkion jonon loppuun.
- Dequeue - Poistaa alkion jonon alusta.
- Peek - Näyttää jonon ensimmäisen alkion poistamatta sitä.
Esimerkki: jonon toteuttaminen
Tässä ohjelmassa esitellään jono-operaatioita taulukon avulla.
#include <stdio.h>
#define MAX 5
int queue[MAX], front = -1, rear = -1;
void enqueue(int value) {
if (rear == MAX - 1) {
printf("Queue Overflow\n");
} else {
if (front == -1) front = 0;
queue[++rear] = value;
}
}
int dequeue() {
if (front == -1 || front > rear) {
printf("Queue Underflow\n");
return -1;
} else {
return queue[front++];
}
}
int main() {
enqueue(10);
enqueue(20);
printf("Dequeued: %d\n", dequeue());
return 0;
}Rengasjono
Rengasjono poistaa tavallisen jonon rajoituksia käyttämällä tyhjät tilat uudelleen.
Operaatiot pysyvät samoina, mutta taulukossa siirrytään sen lopusta takaisin alkuun.
Esimerkki: rengasjono
Tässä ohjelmassa esitellään rengasjonon toteutus.
#include <stdio.h>
#define MAX 5
int queue[MAX], front = -1, rear = -1;
void enqueue(int value) {
if ((rear + 1) % MAX == front) {
printf("Queue Overflow\n");
} else {
if (front == -1) front = 0;
rear = (rear + 1) % MAX;
queue[rear] = value;
}
}
int dequeue() {
if (front == -1) {
printf("Queue Underflow\n");
return -1;
}
int data = queue[front];
if (front == rear) {
front = rear = -1;
} else {
front = (front + 1) % MAX;
}
return data;
}
int main() {
enqueue(10);
enqueue(20);
printf("Dequeued: %d\n", dequeue());
return 0;
}Pinojen ja jonojen käyttökohteet
Pinoja käytetään seuraaviin tarkoituksiin:
- Funktiokutsujen hallinta (rekursio).
- Kumoa- ja tee uudelleen -toiminnot.
- Lausekkeiden arviointi.
Jonoja käytetään seuraaviin tarkoituksiin:
- Tehtävien ajoitus käyttöjärjestelmissä.
- Pyyntöjen hallinta verkkopalvelimissa.
- Tiedonsiirto verkkoympäristöissä.
Yhteenveto
Tässä oppitunnissa opitte:
- Miten pinot ja jonot toimivat.
- Miten pino- ja jono-operaatiot toteutetaan.
- Mitkä ovat pinojen ja jonojen käyttökohteet.
Seuraavaksi tutustutte puihin ja graafeihin C:ssä!

Opi C tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 39
- Oppitunnit
- 144
Usein kysytyt kysymykset
Onko oppitunti ”Pinot ja jonot” ilmainen?
Kyllä – oppitunnin ”Pinot ja jonot” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko C Academy-kurssin, päivitä CoddyKit PROhon. C Academy-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”Pinot ja jonot”?
Ymmärrätte pinojen (LIFO) ja jonojen (FIFO) tietorakenteet sekä niiden sovellukset. Harjoittelet C Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni C Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin C Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/3.
Kuinka kauan ”Pinot ja jonot”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä C Academy-oppitunnilla?
Kyllä. Jokainen C Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Linkitetyt listat
- Pinot ja jonot
- Puut ja graafit