首页 > 其他 > 详细

手写数据结构-基于链表的栈

时间:2020-08-06 01:33:57      阅读:114      评论:0      收藏:0      [点我收藏+]
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();
    }
}

手写数据结构-基于链表的栈

原文:https://www.cnblogs.com/tc971121/p/13443673.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!