0Pricing
C Academy · Lezione

Stack e code

Comprenda le strutture di dati stack (LIFO) e coda (FIFO) e le loro applicazioni.

Stack e code è una lezione C Academy gratuita su CoddyKit. Questa è la lezione 2 di 3. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C Academy include 3 lezioni in totale.

Stack e code in C

Stack e code in C

Gli stack e le code sono strutture dati lineari usate per memorizzare e gestire i dati.

In questa lezione imparerà:

  • Come funzionano gli stack (LIFO - Last In, First Out).
  • Come funzionano le code (FIFO - First In, First Out).
  • Come implementare stack e code in C.
Stack e code — illustrazione 1

Che cos'è uno stack?

Che cos'è uno stack?

Uno stack segue il principio Last In, First Out (LIFO).

Operazioni:

  • Push - Aggiunge un elemento in cima.
  • Pop - Rimuove l'elemento in cima.
  • Peek - Visualizza l'elemento in cima senza rimuoverlo.

Esempio: implementazione di uno stack

Esempio: implementazione di uno stack

Questo programma mostra le operazioni su uno stack usando un array.

#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;
}

Che cos'è una coda?

Che cos'è una coda?

Una coda segue il principio First In, First Out (FIFO).

Operazioni:

  • Enqueue - Aggiunge un elemento in fondo.
  • Dequeue - Rimuove un elemento dalla parte anteriore.
  • Peek - Visualizza l'elemento anteriore senza rimuoverlo.

Esempio: implementazione di una coda

Esempio: implementazione di una coda

Questo programma mostra le operazioni su una coda usando un array.

#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;
}

Coda circolare

Coda circolare

Una coda circolare supera i limiti di una coda normale riutilizzando gli spazi vuoti.

Le operazioni rimangono le stesse, ma proseguono ciclicamente nell'array.

Esempio: coda circolare

Esempio: coda circolare

Questo programma mostra un'implementazione di una coda circolare.

#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;
}

Applicazioni di stack e code

Applicazioni di stack e code

Gli stack vengono usati per:

  • Gestire le chiamate di funzione (ricorsione).
  • Operazioni di annullamento e ripristino.
  • Valutare le espressioni.

Le code vengono usate per:

  • Pianificare le attività nei sistemi operativi.
  • Gestire le richieste nei server web.
  • Trasferire dati nelle reti.

Riepilogo

Riepilogo

In questa lezione ha imparato:

  • Come funzionano gli stack e le code.
  • Come implementare le operazioni su stack e code.
  • Le applicazioni di stack e code.

Successivamente, esploreremo gli alberi e i grafi in C.

Stack e code — illustrazione 10

Domande Frequenti

La lezione «Stack e code» è gratuita?

Sì — il testo completo di «Stack e code» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C Academy, passa a CoddyKit PRO. Il corso C Academy include 3 lezioni in totale.

Cosa imparerò in «Stack e code»?

Comprenda le strutture di dati stack (LIFO) e coda (FIFO) e le loro applicazioni. Eserciti C Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C Academy?

Non è richiesta alcuna esperienza precedente. C Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 3.

Quanto tempo richiede la lezione «Stack e code»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C Academy?

Sì. Ogni lezione C Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Liste concatenate
  2. Stack e code
  3. Alberi e grafi
← Torna a C Academy