zoukankan      html  css  js  c++  java
  • 手写数据结构-基于链表的栈

    1.栈基础

    结构:先进后出

    2.手写基于链表的栈(和基于动态数组的栈对比)
    package com.tc.javabase.datastructure.linklist.stack;
    
    import com.tc.javabase.datastructure.linklist.LinkedList;
    import com.tc.javabase.datastructure.stack.Stack;
    
    /**
     * @Classname LinkedListStack
     * @Description 基于链表实现栈
     *
     * 结构特性:先进后出
     *
     * 时间复杂度分析:
     *      入栈:         O(1)
     *      出栈:         O(1)
     *      查询栈顶元素:  O(1)
     *
     * 综上所述: 基于链表的操作时间复杂度都是O(1)
     *
     * @Date 2020/7/18 17:32
     * @Created by zhangtianci
     */
    public class LinkedListStack<E> implements Stack<E> {
        private LinkedList<E> list;
        private int size;
    
        @Override
        public int getSize() {
            return size;
        }
    
        @Override
        public boolean isEmpty() {
            return size == 0 ? true : false;
        }
    
        /**
         * 入栈
         * 时间复杂度:O(1)
         * @param e
         */
        @Override
        public void push(E e) {
             list.addFirst(e);
        }
    
        /**
         * 出栈
         * 时间复杂度:O(1)
         * @return
         */
        @Override
        public E pop() {
            return list.removeFirst();
        }
    
        /**
         * 瞧一眼栈顶元素
         *
         * 时间复杂度:O(1)
         * @return
         */
        @Override
        public E peek() {
            return list.getFirst();
        }
    
        @Override
        public String toString(){
            StringBuilder res = new StringBuilder();
            res.append("Stack: top ");
            res.append(list);
            return res.toString();
        }
    }
    
  • 相关阅读:
    【概念】using 三种使用方式
    2019-7-2 作业1 2 3
    异常
    java.lang.NullPointerException
    课外作业(建立double类型的小数,按照四舍五入保留2位小数)
    作业1.2.3.4
    左自增与右自增的区别
    深入了解JVM(Java虚拟机)
    Eclipse报错Could not resolve archetype
    ThinkPad E550 连蓝牙鼠标logitech M557
  • 原文地址:https://www.cnblogs.com/tc971121/p/13443673.html
Copyright © 2011-2022 走看看