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; publicclass CharacterStack { privatechar[] buffer; privateint size; public CharacterStack() { this(16); } /** * @param capacity */public CharacterStack(int capacity) { buffer = newchar[capacity]; size = 0; } /** * @return */publicint size() { return size; } /** * @return */publicchar peek() { finalint len = size; if (size == 0) { thrownew EmptyStackException(); } return buffer[len - 1]; } /** * @return */publicchar pop() { int len = size; if (len == 0) { thrownew EmptyStackException(); } --len; finalchar result = buffer[len]; size = len; return result; } /** * @param c */publicvoid push(char c) { if (size == buffer.length) { char[] newBuffer = newchar[buffer.length * 2 + 1]; System.arraycopy(buffer, 0, newBuffer, 0, buffer.length); buffer = newBuffer; } buffer[size++] = c; } }
Related examples in the same category