Mega Code Archive

 
Categories / Java / Collections Data Structure
 

Character Stack

/*******************************************************************************  * Copyright (c) 2008 xored software, Inc.  *  * All rights reserved. This program and the accompanying materials  * are made available under the terms of the Eclipse Public License v1.0  * which accompanies this distribution, and is available at  * http://www.eclipse.org/legal/epl-v10.html  *  * Contributors:  *     xored software, Inc. - initial API and Implementation (Alex Panchenko)  *******************************************************************************/ import java.util.EmptyStackException; public class CharacterStack {   private char[] buffer;   private int size;   public CharacterStack() {     this(16);   }   /**    * @param capacity    */   public CharacterStack(int capacity) {     buffer = new char[capacity];     size = 0;   }   /**    * @return    */   public int size() {     return size;   }   /**    * @return    */   public char peek() {     final int len = size;     if (size == 0) {       throw new EmptyStackException();     }     return buffer[len - 1];   }   /**    * @return    */   public char pop() {     int len = size;     if (len == 0) {       throw new EmptyStackException();     }     --len;     final char result = buffer[len];     size = len;     return result;   }   /**    * @param c    */   public void push(char c) {     if (size == buffer.length) {       char[] newBuffer = new char[buffer.length * 2 + 1];       System.arraycopy(buffer, 0, newBuffer, 0, buffer.length);       buffer = newBuffer;     }     buffer[size++] = c;   } }