Skip to Content
C# Cookbook
book

C# Cookbook

by Stephen Teilhet, Jay Hilyard
January 2004
Beginner to intermediate
864 pages
22h 18m
English
O'Reilly Media, Inc.
Content preview from C# Cookbook

10.3. Creating a More Versatile Queue

Problem

You need a queue object in which you can explicitly control the adding and removing of objects to either the head (top) or tail (bottom).

Solution

A queue that allows explicit removal of items from the head and the tail is called a double-queue.

This class is defined as follows:

using System; using System.Collections; [Serializable] public class DblQueue : ICollection, IEnumerable, ICloneable { public DblQueue( ) { internalList = new ArrayList( ); } public DblQueue(ICollection coll) { internalList = new ArrayList(coll); } protected ArrayList internalList = null; public virtual int Count { get {return (internalList.Count);} } public virtual bool IsSynchronized { get {return (false);} } public virtual object SyncRoot { get {return (this);} } public static DblQueue Synchronized(DblQueue dqueue) { if (dqueue == null) { throw (new ArgumentNullException("dqueue")); } return (new SyncDeQueue(dqueue)); } public virtual void Clear( ) { internalList.Clear( ); } public virtual object Clone( ) { // Make a new DQ DblQueue newDQ = new DblQueue(this); return newDQ; } public virtual bool Contains(object obj) { return (internalList.Contains(obj)); } public virtual void CopyTo(Array array, int index) { internalList.CopyTo(array, index); } public virtual object DequeueHead( ) { object retObj = internalList[0]; internalList.RemoveAt(0); return (retObj); } public virtual object DequeueTail( ) { object retObj = internalList[InternalList.Count - 1]; internalList.RemoveAt(InternalList.Count ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C# Cookbook

C# Cookbook

Joe Mayo
C# Cookbook, 2nd Edition

C# Cookbook, 2nd Edition

Jay Hilyard, Stephen Teilhet
ASP.NET Cookbook

ASP.NET Cookbook

Michael A Kittel, Geoffrey T. LeBlond

Publisher Resources

ISBN: 0596003390Supplemental ContentCatalog PageErrata