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());
        }
    }
    

      

  • 相关阅读:
    【Python】错误、调试和测试
    【c++ primer, 5e】函数指针
    【英语学习】【17/4/1】
    【c++ primer, 5e】函数匹配
    FIRST GAME.
    【Thinking in Java, 4e】访问权限控制
    【c++ primer, 5e】特殊用途语言特性
    Top-Down笔记 #01# 计算机网络概述
    NHibernate之映射文件配置说明
    Web Service 部署到IIS服务器
  • 原文地址:https://www.cnblogs.com/412013cl/p/9635167.html
Copyright © 2011-2022 走看看