Area di riferimento
- Developing applications that use system types and collections
- Manage a group of associated data in a .NET Framework application by using collections. (Refer System.Collections namespace)
- Stack class
- Queue class
Stack e Queue
La classe Stack e la classe Queue sono l'implementazione di due note strutture dati nel mondo informatico.
La prima utilizza la tecnica LIFO (Last In First Out) per inserire ed estrarre gli elementi. La seconda invece utilizza la tecnica FIFO (First In First Out).
Semplice utilizzo della classe Stack:
Stack stack = new Stack();
stack.Push("Andrea"); // Inserimento in testa alla pila
stack.Push("Franco");
stack.Push("Annamaria");
Console.WriteLine(stack.Peek()); // Legge la testa della pila senza estrarre l'elemento
Console.WriteLine(stack.Pop()); // Estrazione di un elemento dalla testa della pila
Console.WriteLine(stack.Pop());
Console.WriteLine(stack.Pop());
Semplice utilizzo della classe Queue:
Queue queue = new Queue();
queue.Enqueue("Andrea"); // Inserimento in coda
queue.Enqueue("Franco");
queue.Enqueue("Annamaria");
Console.WriteLine(queue.Peek()); // Legge il primo elemento della coda senza estrarlo
Console.WriteLine(queue.Dequeue()); // Estrae il primo elemento inserito nella coda
Console.WriteLine(queue.Dequeue());
Console.WriteLine(queue.Dequeue());
Entrambe le classi implementano le interfaccie ICollection, IEnumerable e ICloneable.
E' possibile quindi utilizzare il costrutto foreach per scorrere gli elementi di entrambe le strutture dati anche se questo generalmente non si usa.
foreach (string s in stack)
{
Console.WriteLine(s);
}
foreach (string s in queue)
{
Console.WriteLine(s);
}