C Academy · Oppitunti

Pinot ja jonot

Ymmärrätte pinojen (LIFO) ja jonojen (FIFO) tietorakenteet sekä niiden sovellukset.

Oppitunti 2/310 vaihetta

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ä.
Pinot ja jonot — kuvitus 1

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ä!

Pinot ja jonot — kuvitus 10
Aloita maksutta

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

  1. Linkitetyt listat
  2. Pinot ja jonot
  3. Puut ja graafit
← Takaisin: C Academy