// // This file contains the C# code from Program 6.9 of // "Data Structures and Algorithms // with Object-Oriented Design Patterns in C#" // by Bruno R. Preiss. // // Copyright (c) 2001--2002 by Bruno R. Preiss, P.Eng. All rights reserved. // // http://www.brpreiss.com/books/opus6/programs/pgm06_09.txt // public class StackAsLinkedList : AbstractContainer, Stack { protected LinkedList list; public void Push(object obj) { list.Prepend(obj); ++count; } public object Pop() { if (count == 0) throw new ContainerEmptyException(); object result = list.First; list.Extract(result); --count; return result; } public object Top { get { if (count == 0) throw new ContainerEmptyException(); return list.First; } } // ... }