Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- struct Nodo {
- string dato = "";
- Nodo *next = nullptr;
- };
- void ins_testa(Nodo *&il, Nodo *nuovo)
- {
- if (il==nullptr)
- {
- nuovo->next = nuovo;
- il = nuovo;
- }
- else
- {
- //portiamo un puntatore sull'ultimo nodo
- Nodo *ultimo=il;
- while (ultimo->next != il) ultimo = ultimo->next;
- nuovo->next = il;
- il = nuovo;
- //ricostruiamo la circolarita
- ultimo->next = il;
- }
- }
- void ins_coda(Nodo *&il, Nodo *nuovo)
- {
- if (il == nullptr) //lista vuota ?
- {
- nuovo->next = il;
- il = nuovo;
- il ->next = il; //circolarita'
- }
- else
- {
- Nodo *ultimo = il;
- //otteniamo un puntatore all'ultimo nodo attuale
- while(ultimo->next != il) ultimo = ultimo->next;
- ultimo->next = nuovo;
- nuovo->next = il;
- }
- }
- //si assume che si chieda di stampare tutta la lista
- //diversamtente bisogna passare anche il
- void stampa(Nodo *p)
- {
- Nodo *il_copia = p;
- if (p!=nullptr)
- {
- do
- {
- cout << p->dato << " ";
- //al prossimo nodo
- p = p->next;
- } while (p!=il_copia);
- }
- }
- int main()
- {
- Nodo *il = nullptr;
- stampa(il);
- Nodo *nuovo = new Nodo;
- nuovo->dato = "1";
- ins_testa(il, nuovo);
- //stampa(il);
- //
- nuovo = new Nodo;
- nuovo->dato = "2";
- ins_testa(il, nuovo);
- stampa(il);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement