Advertisement
fcamuso

Collezioni - LinkedList

Oct 14th, 2021
1,300
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.85 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3.  
  4. namespace LinkedList
  5. {
  6.   class Cliente
  7.   {
  8.     public string Cognome { get; set; }
  9.     public int Eta { get; set; }
  10.     public Cliente(string cognome, int eta) { Cognome = cognome; Eta = eta; }
  11.  
  12.     public override bool Equals(Object obj)
  13.     {
  14.       Cliente c = obj as Cliente;
  15.       return c.Cognome == this.Cognome;
  16.     }
  17.   }
  18.  
  19.  
  20.   class Program
  21.   {
  22.     static void StampaElenco(LinkedList<Cliente> elenco)
  23.     {
  24.       foreach (Cliente c in elenco)
  25.         Console.WriteLine($"{c.Cognome} - {c.Eta}");
  26.  
  27.       Console.WriteLine(new string('-', 40));
  28.     }
  29.  
  30.  
  31.     static void Main(string[] args)
  32.     {
  33.       LinkedList<Cliente> elenco = new LinkedList<Cliente>();
  34.  
  35.       elenco.AddFirst(new Cliente("Uno", 15));
  36.       elenco.AddFirst(new Cliente("Due", 30));
  37.       elenco.AddFirst(new Cliente("Tre", 45));
  38.  
  39.       StampaElenco(elenco); //LIFO
  40.  
  41.       elenco.Clear();
  42.  
  43.       elenco.AddLast(new Cliente("Uno", 15));
  44.       elenco.AddLast(new Cliente("Due", 30));
  45.       elenco.AddLast(new Cliente("Tre", 45));
  46.  
  47.       StampaElenco(elenco); //FIFO
  48.  
  49.       Console.WriteLine($"{elenco.First.Value.Cognome} - {elenco.Last.Value.Cognome}");
  50.  
  51.       elenco.AddAfter(elenco.First.Next, new Cliente("Quattro", 44));
  52.       StampaElenco(elenco);
  53.  
  54.       LinkedListNode<Cliente> cercato = elenco.Find(new Cliente("Due", 30));
  55.       Console.WriteLine(cercato.Next.Value.Cognome);
  56.  
  57.       cercato.Next.Value.Cognome = "XXX";
  58.       Console.WriteLine(elenco.Last.Previous.Value.Cognome);
  59.  
  60.       elenco.Remove(cercato);
  61.       StampaElenco(elenco);
  62.  
  63.       //visita di ogni nodo della linkedlist con un ciclo tradizionale
  64.       LinkedListNode<Cliente> temp = elenco.First;
  65.       while (temp != null)
  66.       {
  67.         Console.WriteLine(temp.Value.Cognome);
  68.         temp = temp.Next;
  69.       }
  70.     }
  71.   }
  72. }
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement