Stack implemented in Java

package aa.datastructure;

import java.util.Arrays;

/**
 *  栈
 */
public class MyStack<E> {
    
    
	private Object[] data = null;
	private int length = 0; // 栈的容量
	private int top = -1; // 栈顶的指针
	
	MyStack() {
    
    
		
	}
	MyStack(int initSize){
    
    
		if(initSize>=0) {
    
    
			this.length = initSize;
			data = new Object[initSize];
			top = -1;
		}else {
    
    
			throw new RuntimeException("初始容量不能小于0"+initSize);
		}
	}
	
	public boolean push(E e) {
    
    
		if(top == length-1) {
    
    
			throw new RuntimeException("栈已经达到最大值");
		}else {
    
    
			data[++top] = e;
			return true;
		}
	}
	
	public E pop() {
    
    
		if(top == -1) {
    
    
			throw new RuntimeException("空栈");
		}else {
    
    
			return (E) data[top--];
		}
	}
	
	public E peek() {
    
    
		if(top == -1) {
    
    
			throw new RuntimeException("空栈");
		}else {
    
    
			return (E) data[top];
		}
	}
	public static void main(String[] args) {
    
    
		MyStack sm = new MyStack(3);
		for (int i = 0; i < 3; i++) {
    
    
			sm.push(i);
		}
		System.out.println(Arrays.toString(sm.data));
		for (int i = 0; i < 3; i++) {
    
    
			System.out.println(sm.peek());
		}
		for (int i = 0; i < 3; i++) {
    
    
			System.out.println(sm.pop());
		}
	}
	
}

Guess you like

Origin blog.csdn.net/weixin_39472101/article/details/111059880