A stack class for characters. : Your Stack : Data Structure C# Examples


C# Examples » Data Structure » Your Stack »

 

A stack class for characters.









    
using  System;    
    
class  Stack  {      
    char[]  stck;  //  holds  the  stack    
    int  tos;          //  index  of  the  top  of  the  stack    
      
    public  Stack(int  size)  {      
        stck  =  new  char[size];  //  allocate  memory  for  stack      
        tos  =  0;      
    }      
    
    public  void  push(char  ch)  {      
        if(tos==stck.Length)  {      
            Console.WriteLine("  --  Stack  is  full.");      
            return;      
        }      
              
        stck[tos]  =  ch;    
        tos++;    
    }      
      
    public  char  pop()  {      
        if(tos==0)  {      
            Console.WriteLine("  --  Stack  is  empty.");      
            return  (char)  0;        
        }      
          
        tos--;      
        return  stck[tos];      
    }  
  
    public  bool  full()  {  
        return  tos==stck.Length;        
    }  
  
    public  bool  empty()  {  
        return  tos==0;  
    }  
  
    public  int  capacity()  {  
        return  stck.Length;  
    }  
  
    public  int  getNum()  {  
        return  tos;  
    }  
}    

class  MainClass  {      
    public  static  void  Main()  {      
        Stack  stk1  =  new  Stack(10);      
        Stack  stk2  =  new  Stack(10);      
        Stack  stk3  =  new  Stack(10);      
        char  ch;      
        int  i;      
      
        Console.WriteLine("Push  A  through  J  onto  stk1.");  
        for(i=0;  !stk1.full();  i++)      
            stk1.push((char)  ('A'  +  i));      
    
        if(stk1.full())  
              Console.WriteLine("stk1  is  full.");  
  
        Console.Write("Contents  of  stk1:  ");      
        while(  !stk1.empty()  )  {        
            ch  =  stk1.pop();      
            Console.Write(ch);      
        }      
      
        Console.WriteLine();      
  
        if(stk1.empty())  
              Console.WriteLine("stk1  is  empty.\n");  
      
        Console.WriteLine("Again  push  A  through  J  onto  stk1.");  
        for(i=0;  !stk1.full();  i++)      
            stk1.push((char)  ('A'  +  i));      
  
        Console.WriteLine("Now,  pop  chars  from  stk1  and  push  "  +  
                                            "them  onto  stk2.");  
        while(  !stk1.empty()  )  {        
            ch  =  stk1.pop();      
            stk2.push(ch);  
        }      
  
        Console.Write("Contents  of  stk2:  ");      
        while(  !stk2.empty()  )  {        
            ch  =  stk2.pop();      
            Console.Write(ch);      
        }      
  
  
        Console.WriteLine("Capacity  of  stk2:  "  +  stk2.capacity());  
        Console.WriteLine("Number  of  objects  in  stk2:  "  +  
                                            stk2.getNum());  
        
    }      
}
    
   
  
   



Output

Push A through J onto stk1.
stk1 is full.
Contents of stk1: JIHGFEDCBA
stk1 is empty.

Again push A through J onto stk1.
Now, pop chars from stk1 and push them onto stk2.
Contents of stk2: ABCDEFGHIJCapacity of stk2: 10
Number of objects in stk2: 0


HTML code for linking to this page:

Follow Navioo On Twitter

C# Examples

 Navioo Data Structure
» Your Stack