数据结构-栈(stack)和java代码实现

栈是一种数据结构,特点后进先出(LIFO);提供了出栈,入栈等操作;

java代码实现如下(基于数组)

public class Stack<T> {

	private int size = 10;
	private Object[] stack = new Object[size];
	private int position;
	
	@SuppressWarnings("unchecked")
	public T pop() {
		T obj = null;
		if (position>0) {
			obj = (T) stack[position - 1];
			stack[position-1] = null;
			position--;
		}
		return obj;
	}
	
	public T push(T obj) {
		if (position >= stack.length) {
			size *= 2;
			//Object[] stack2 = new Object[size];
			/*System.arraycopy(stack, 0, stack2, 0, stack.length);
			stack = stack2;*/
			stack = Arrays.copyOf(stack, size);
		}
		stack[position++] = obj;
		return obj;
	}
	
	public int size(){
		return position;
	}
	
	public static void main(String[] args) {
		Stack<Integer> stack = new Stack<>();
		for (int i = 0; i < 105; i++) {
			stack.push(i);
		}
		for (int i = 0; i < 105; i++) {
			System.out.println(stack.pop());
		}
		System.out.println("stack size is " + stack.size());
	}
}

猜你喜欢

转载自blog.csdn.net/u011821510/article/details/105617411