"Scrivi una libreria C++ che implementi una lista concatenata."
#include<iostream>
using namespace std;

struct Nodo {
    int dati;
    struct Nodo *prossimo;
};

// Aggiungi un nuovo nodo alla fine della lista
void appendi(struct Nodo** testa_rif, int nuovi_dati) 
{ 
    Nodo* nuovo_nodo = new Nodo; 
  
    Nodo *ultimo = *testa_rif;
  
    nuovo_nodo->dati = nuovi_dati; 
  
    nuovo_nodo->prossimo = NULL; 
  
    if (*testa_rif == NULL) { 
        *testa_rif = nuovo_nodo; 
        return; 
    } 
  
    while (ultimo->prossimo != NULL) 
        ultimo = ultimo->prossimo; 
  
    ultimo->prossimo = nuovo_nodo; 
    return; 
} 

// Elimina il nodo in una data posizione
void eliminaNodo(struct Nodo **testa_rif, int posizione) 
{ 
    if (*testa_rif == NULL) 
        return; 
    struct Nodo *temp = *testa_rif; 
    if (posizione == 0) 
    { 
        *testa_rif = temp->prossimo;   
        free(temp);               
        return; 
    } 

   for (int i=0; temp!=NULL && i<posizione-1; i++) 
         temp = temp->prossimo; 
  
    if (temp == NULL || temp->prossimo == NULL) 
         return; 
  
   struct Nodo *prossimo = temp->prossimo->prossimo; 

   free(temp->prossimo);  
   temp->prossimo = prossimo;  
}