Data Types C#

/*
C# A Beginner's Guide
By Schildt
Publisher: Osborne McGraw-Hill
ISBN: 0072133295
*/
/* 
   Project 5-2 
 
   A queue class for characters. 
*/ 
using System; 
 
class Queue { 
  public char[] q; // this array holds the queue 
  public int putloc, getloc; // the put and get indices 
 
  public Queue(int size) { 
    q = new char[size+1]; // allocate memory for queue 
    putloc = getloc = 0; 
  } 
 
  // put a character into the queue 
  public void put(char ch) { 
    if(putloc==q.Length-1) { 
      Console.WriteLine(" -- Queue is full."); 
      return; 
    } 
     
    putloc++; 
    q[putloc] = ch; 
  } 
 
  // get a character from the queue 
  public char get() { 
    if(getloc == putloc) { 
      Console.WriteLine(" -- Queue is empty."); 
      return (char) 0;  
    } 
   
    getloc++; 
    return q[getloc]; 
  } 

 
// Demonstrate the Queue class. 
public class QueueDemo1 { 
  public static void Main() { 
    Queue bigQ = new Queue(100); 
    Queue smallQ = new Queue(4); 
    char ch; 
    int i; 
 
    Console.WriteLine("Using bigQ to store the alphabet."); 
    // put some numbers into bigQ 
    for(i=0; i < 26; i++) 
      bigQ.put((char) ('A' + i)); 
 
    // retrieve and display elements from bigQ 
    Console.Write("Contents of bigQ: "); 
    for(i=0; i < 26; i++) {  
      ch = bigQ.get(); 
      if(ch != (char) 0) Console.Write(ch); 
    } 
 
    Console.WriteLine("\n"); 
 
 
    Console.WriteLine("Using smallQ to generate erros."); 
    // Now, use smallQ to generate some errors 
    for(i=0; i < 5; i++) { 
      Console.Write("Attempting to store " + 
                       (char) ('Z' - i)); 
 
      smallQ.put((char) ('Z' - i)); 
 
      Console.WriteLine(); 
    } 
    Console.WriteLine(); 
 
    // more errors on smallQ 
    Console.Write("Contents of smallQ: "); 
    for(i=0; i < 5; i++) {  
      ch = smallQ.get(); 
 
      if(ch != (char) 0) Console.Write(ch); 
    } 
  } 
}