Implements the stack data type using an array : Stack « Collections Data Structure « C# / C Sharp






Implements the stack data type using an array

Implements the stack data type using an array
  

using System;

public class Stack {
  private int[] data;
  private int size;
  private int top = -1;

  public Stack() { 
    size = 10;
    data = new int[size];
  }
  public Stack(int size) {
    this.size = size;
    data = new int[size];
  }       
  public bool IsEmpty() {
    return top == -1;
  }
  public bool IsFull() {
    return top == size - 1;
  }
  public void Push(int i){
    if (IsFull())
      throw new ApplicationException("Stack full");
    else
      data[++top] = i;
  }
  public int Pop(){
    if (IsEmpty())
       throw new StackEmptyException("Stack empty");
    else
       return data[top--];
  }
  public int Top(){
    if (IsEmpty()) 
      throw new StackEmptyException("Stack empty");
    else
      return data[top];
  }
  public static void Main() {
    try {
      Stack stack1 = new Stack(); 
      stack1.Push(4);
      stack1.Push(5);
      Console.WriteLine("The top is now {0}", stack1.Top());
      stack1.Push(6);
      Console.WriteLine("Popping stack returns {0}", stack1.Pop());
      Console.WriteLine("Stack 1 has size {0}", stack1.size);
      Console.WriteLine("Stack 1 empty? {0}", stack1.IsEmpty());
      stack1.Pop();
      Console.WriteLine("Throws exception before we get here");
    }catch(Exception e) {
        Console.WriteLine(e);
    }
  }
}


class StackEmptyException : ApplicationException {
  public StackEmptyException(String message) : base(message) {
  }
}
           
         
    
  








Related examples in the same category

1.new Stack(new int[] { 1, 2, 3, 4, 5, 6 })
2.new Stack())
3.Stack demo Stack demo
4.Stack to arrayStack to array
5.illustrates the use of a Stackillustrates the use of a Stack
6.A stack class for charactersA stack class for characters
7.Demonstrate the Stack classDemonstrate the Stack class
8.Stack(T) Class represents a variable size last-in-first-out (LIFO) collection of instances of the same arbitrary type.
9.Overflow Stack
10.Thread Safe Stack
11.A Stacked array is an integer array that contains a sequence of ascending integers.
12.FixedSizeStack provides an easy Stack implementation width a fixed size to prevent Stack Overflows in another sense.
13.Stack abstraction that also supports the IList interface