Yesterday we looked at the Queue class. The queue is used when you need a first in, first out (FIFO) way to read through your collection. Sometimes though you need to read so that the first item you retrieve is the most recently added item, much like the computer’s stack, or a Pez candy dispenser (http://www.pez.com).
With the stack class, the most recently added item is the first one you pull out. Stacks have a count property and peek method, much like it’s cousin the queue. However, the stack uses push and pop to get items on and off the stack. Let’s take a look.
Stack myStack = new Stack();
myStack.Push(“1. Carl Franklin”);
myStack.Push(“2. Richard Campbell”);
myStack.Push(“3. Mark Miller”);
myStack.Push(“4. Kimberly Tripp”);
myStack.Push(“5. Billy Hollis”);
while (myStack.Count > 0)
{
Console.WriteLine(myStack.Pop());
}
Console.ReadLine();
As you can see, the pop operation removed the items from the collection in the reverse order from which they were loaded. In other words, the last item on is the first one you’ll be pulling off.
The peek method works just like it does with the queue. Modifying the while loop above thusly:
while (myStack.Count > 0)
{
Console.WriteLine(“Peek: “ + myStack.Peek());
Console.WriteLine(“Pop : “ + myStack.Pop());
}
Produces this output:
Stacks are handy when you want to keep track of objects that need to be handled in the reverse order, say for creating and disposing. Like queues, stacks enforce reading your data in a specific order. Whenever you have a requirement to read in a LIFO order, the stack class will add the extra safety you need to make your applications work as you designed.