// // This file contains the C# code from Program 6.23 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_23.txt // public class DequeAsArray : QueueAsArray, Deque { public object Tail { get { if (count == 0) throw new ContainerEmptyException(); return array[tail]; } } public void EnqueueTail(object obj) { Enqueue(obj); } public object DequeueTail() { if (count == 0) throw new ContainerEmptyException(); object result = array[tail]; array[tail] = null; if (tail-- == 0) tail = array.Length - 1; --count; return result; } // ... }