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();
        }
    }
    
  • 相关阅读:
    C语言寒假大作战01
    C语言I作业12—学期总结
    C语言I博客作业11
    C语言I博客作业10
    C语言I博客作业09
    C语言I博客作业08
    centos安装swoole
    Apache优化:修改最大并发连接数
    centos中安装、升级git
    memcached/memcache安装
  • 原文地址:https://www.cnblogs.com/tc971121/p/13443673.html
Copyright © 2011-2022 走看看