// // This file contains the C# code from Program 6.19 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_19.txt // public class QueueAsLinkedList : AbstractContainer, Queue { protected LinkedList list; public object Head { get { if (count == 0) throw new ContainerEmptyException(); return list.First; } } public void Enqueue(object obj) { list.Append(obj); ++count; } public object Dequeue() { if (count == 0) throw new ContainerEmptyException(); object result = list.First; list.Extract(result); --count; return result; } // ... }