Implements the queue data type using an array : Queue : Collections Data Structure C# Source Code


Custom Search

C# Source Code » Collections Data Structure » Queue »

 

Implements the queue data type using an array









    


using System;

public class Queue {
  private int[] data;     
  private int size;       
  private int front = -1; 
  private int back = 0;   
  private int count = 0;

  public Queue() { 
    size = 10;
    data = new int[size];
  }
  
  public Queue(int size) {
    this.size = size;
    data = new int[size];
  }       
  
  public bool IsEmpty() {
    return  count == 0;
  }
  
  public bool IsFull() {
    return count == size;
  }
  
  public void Add(int i){
    if (IsFull())
      throw new ApplicationException("Queue full");
    else {
      count++;
      data[back++ % size] = i;
    }
  }
  public int Remove(){
    if (IsEmpty())
       throw new ApplicationException("Queue empty");
    else {
       count--;
       return data[++front % size];
    }
  }
  public int Head(){
    if (IsEmpty()){
      throw new ApplicationException("Queue empty");
    }
    else
      return data[(front+1) % size];
  }
  public static void Main() {
    try {
      Queue q1 = new Queue();
      q1.Add(4);
      q1.Add(5);
      Console.WriteLine("The front is now {0}", q1.Head());
      q1.Add(6);
      Console.WriteLine("Removing from q1 returns {0}", q1.Remove());
      Console.WriteLine("Queue 1 has size {0}", q1.size);
      Console.WriteLine("Queue 1 empty? {0}", q1.IsEmpty());
      q1.Remove();
      Console.WriteLine("Throws exception before we get here");
    }catch(Exception e) {
        Console.WriteLine(e);
    }
  }
}  

           
       
    
   
  
   







HTML code for linking to this page:

Follow Navioo On Twitter

C# Source Code

 Navioo Collections Data Structure
» Queue