Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <memory>
- template <typename T>
- class ListaConcatenata {
- private:
- // Nodo della lista
- class Nodo {
- public:
- T dati;
- std::unique_ptr<Nodo> successivo = nullptr;
- //Nodo(T i_dati) { dati = i_dati;}
- Nodo(T i_dati) : dati(i_dati) {}
- };
- std::unique_ptr<Nodo> testa = nullptr;
- Nodo* coda = nullptr;
- public:
- ListaConcatenata() {}
- // Aggiunge un elemento all'inizio della lista
- void inserisci_in_testa(T i_dati) {
- auto nuovo = std::make_unique<Nodo>(i_dati);
- if (!testa) {
- coda = nuovo.get();
- }
- //std::cout << "testa PRIMA: " << testa.get() << std::endl;
- nuovo->successivo = std::move(testa);
- //std::cout << "testa DOPO: " << testa.get() << std::endl;
- testa = std::move(nuovo);
- }
- // Stampa gli elementi della lista
- void stampa() const {
- Nodo* temp = testa.get();
- while (temp) {
- std::cout << temp->dati << " -> ";
- temp = temp->successivo.get();
- }
- std::cout << "nullptr" << std::endl;
- }
- };
- int main() {
- ListaConcatenata<int> lista_numeri;
- lista_numeri.inserisci_in_testa(1);
- lista_numeri.inserisci_in_testa(2);
- lista_numeri.inserisci_in_testa(3);
- lista_numeri.inserisci_in_testa(4);
- std::cout << "lista_numeri: ";
- lista_numeri.stampa();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement