// // This file contains the C# code from Program 6.4 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_04.txt // public class StackAsArray : AbstractContainer, Stack { protected object[] array; public void Push(object obj) { if (count == array.Length) throw new ContainerFullException(); array[count++] = obj; } public object Pop() { if (count == 0) throw new ContainerEmptyException(); object result = array[--count]; array[count] = null; return result; } public object Top { get { if (count == 0) throw new ContainerEmptyException(); return array[count - 1]; } } // ... }