zoukankan      html  css  js  c++  java
  • Java经典实例:进阶版堆栈实现,支持任何对象类型

    支持任何对象类型,有更多的错误检查。

    package Stack;
    
    /**
     * Created by Frank
     */
    public class MyStack<T> implements SimpleStack<T> {
    
        public static void main(String[] args) {
            MyStack<String> stack = new MyStack<>();
            stack.push("Frank");
            stack.push("Smith");
            System.out.println(stack.pop());
        }
    
        private int depth = 0;
        public static final int DEFAULT_INITIAL = 10;
        private T[] stack;
    
        public MyStack() {
            this(DEFAULT_INITIAL);
        }
    
        public MyStack(int howBig) {
            if (howBig <= 0) {
                throw new IllegalArgumentException(howBig + " must be positive, but was " + howBig);
            }
            stack = (T[]) new Object[howBig];
        }
    
        @Override
        public boolean empty() {
            return depth == 0;
        }
    
        @Override
        public void push(T obj) {
            stack[depth++] = obj;
        }
    
        @Override
        public T pop() {
            --depth;
            T tmp = stack[depth];
            stack[depth] = null;
            return tmp;
        }
    
        @Override
        public T peek() {
            if (depth == 0) {
                return null;
            }
            return stack[depth - 1];
        }
    }
  • 相关阅读:
    游戏与必胜策略
    中国剩余定理
    中国剩余定理
    欧几里得和扩展欧几里得
    欧几里得和扩展欧几里得
    51nod 1028 大数乘法 V2
    51nod 1028 大数乘法 V2
    51nod 1029 大数除法
    51nod 1029 大数除法
    51nod 1166 大数开平方
  • 原文地址:https://www.cnblogs.com/frankyou/p/6134198.html
Copyright © 2011-2022 走看看