Esercizio guidato dal docente in classe

Inserimento elemento in coda array con controllo capacità


Inserimento in Coda di un Array

Cosa fa questo programma?

Questo programma dimostra come inserire un nuovo elemento alla fine (in coda) di un array che contiene già alcuni elementi. È una delle operazioni fondamentali nella gestione degli array dinamici.

Analisi del codice

// INSERIMENTO IN CODA
#include <iostream>
using namespace std;

int main() {
    const int CAPACITA = 10;
    int a[CAPACITA] = {7, 3, 9, 1, 5};
    int n = 5;
    int valore = 8;                  // valore da inserire

Dichiarazione delle variabili

  • CAPACITA = 10: definisce la dimensione massima dell'array (10 elementi)
  • a[CAPACITA]: crea un array di 10 posizioni, inizializzato con i primi 5 valori {7, 3, 9, 1, 5}
  • n = 5: tiene traccia di quanti elementi sono attualmente utilizzati nell'array
  • valore = 8: il nuovo elemento che vogliamo aggiungere

Visualizzazione dello stato iniziale

cout << "Prima:  ";
for (int i = 0; i < n; i++) cout << a[i] << " ";
cout << endl;

Questo ciclo stampa tutti gli elementi attualmente presenti nell'array (i primi 5).

L'operazione di inserimento

if (n < CAPACITA) {
    a[n] = valore;               // la prima cella libera e' a[n]
    n++;
} else {
    cout << "Array pieno!" << endl;
}

Questa è la parte più importante:

  • Controllo dello spazio: verifica se c'è ancora spazio nell'array (n < CAPACITA)
  • Inserimento: se c'è spazio, inserisce il nuovo valore nella posizione a[n]
    • Perché a[n]? Perché se abbiamo n elementi, gli indici occupati vanno da 0 a n-1, quindi n è il primo indice libero
  • Aggiornamento del contatore: incrementa n per riflettere il nuovo numero di elementi
  • Gestione errore: se l'array è pieno, stampa un messaggio di errore

Visualizzazione del risultato

cout << "Dopo:   ";
for (int i = 0; i < n; i++) cout << a[i] << " ";
cout << endl;

Stampa l'array aggiornato con il nuovo elemento.

Esempio di esecuzione

Output del programma:

Prima:  7 3 9 1 5 
Dopo:   7 3 9 1 5 8 

Concetti chiave

  • Inserimento in coda: aggiungere un elemento alla fine è l'operazione più semplice e veloce
  • Gestione della dimensione: è fondamentale tenere traccia di quanti elementi sono effettivamente utilizzati
  • Controllo dei limiti: sempre verificare che ci sia spazio disponibile prima di inserire
  • Complessità: questa operazione ha complessità O(1) - tempo costante

Vantaggi dell'inserimento in coda

  • È molto veloce (non richiede spostamenti di elementi)
  • È semplice da implementare
  • Non modifica la posizione degli elementi esistenti

#include <iostream>
using namespace std;

int main() {
    const int CAPACITA = 10;
    int a[CAPACITA] = {7, 3, 9, 1, 5};
    int n = 5;
    int valore = 8;                  // valore da inserire

    cout << "Prima:  ";
    for (int i = 0; i < n; i++) cout << a[i] << " ";
    cout << endl;

    if (n < CAPACITA) {
        a[n] = valore;               // la prima cella libera e' a[n]
        n++;
    } else {
        cout << "Array pieno!" << endl;
    }

    cout << "Dopo:   ";
    for (int i = 0; i < n; i++) cout << a[i] << " ";
    cout << endl;

    return 0;
}