zoukankan      html  css  js  c++  java
  • Java 实现Stack数据结构-学习记录

    package stack;
    
    /**
     * @Title: Stack
     * @ProjectName Demo03
     * @date 2018/9/12
     */
    public interface Stack<E> {
        int getSize();
        boolean isEmpty();
        void push(E e);
        E pop();
        E peek();
    }
    

      

    package stack;
    
    import array.Array;
    
    /**
     * @Title: ArrayStack
     * @ProjectName Demo03
     * @date 2018/9/12
     */
    public class ArrayStack<E> implements Stack<E> {
        private Array<E> array;
        public ArrayStack() {
            array = new Array<>();
        }
    
        public ArrayStack(int capacity) {
            array = new Array<>(capacity);
        }
        @Override
        public int getSize() {
            return array.getSize();
        }
    
        @Override
        public boolean isEmpty() {
            return array.isEmpty();
        }
    
        @Override
        public void push(E e) {
            array.addLast(e);
        }
    
        @Override
        public E pop() {
            return array.removeLast();
        }
    
        @Override
        public E peek() {
            return array.getLast();
        }
    
        @Override
        public String toString() {
            StringBuilder res = new StringBuilder();
            res.append("Stack: [");
            for (int i = 0; i < array.getSize(); i++) {
                res.append(array.get(i));
                if (i != array.getSize() - 1) {
                    res.append(",");
                }
            }
            res.append("] top");
            return res.toString();
        }
    
        public static void main(String[] args) {
            ArrayStack<String> arrayStack = new ArrayStack<>();
            arrayStack.push("a");
            arrayStack.push("b");
            arrayStack.push("c");
            System.out.println(arrayStack);
            String pop = arrayStack.pop();
            System.out.println(pop);
            System.out.println(arrayStack);
            System.out.println(arrayStack.peek());
        }
    }
    

      

  • 相关阅读:
    HDU 4619 Warm up 2 (多校)
    深入浅出Node.js (9)
    HDU 1106 排序(排序)
    字符串相关心得
    HDU 2547 无剑无我(数学)
    HDU 2549 壮志难酬(字符串,处理小数点)
    HDU 2551 竹青遍野(循环,水)
    HDU 2552 三足鼎立(数学函数)
    HDU 2555 陷阱(模拟,结构体数组)
    HDU 2561 第二小整数(排序,水)
  • 原文地址:https://www.cnblogs.com/412013cl/p/9635167.html
Copyright © 2011-2022 走看看