zoukankan      html  css  js  c++  java
  • 使用链表实现栈

    前言

    使用自定义链表实现栈,自定义链表的实现:链表


    具体实现

    • 栈接口
    public interface Stack<T> {
    
        /**
         * 添加元素
         * @param t
         */
        void push (T t);
    
        /**
         * 元素出栈
         * @return
         */
        T pop();
    
        /**
         * 查看栈顶元素
         * @return
         */
        T peek();
    
        /**
         * 获取大小
         * @return
         */
        int getSize();
    
        /**
         * 是否为空
         * @return
         */
        boolean isEmpty();
    
    }
    
    • 实现类
    public class LinkedListStack<T> implements Stack<T> {
    
        /**
         * 链表
         */
        private LinkedList<T> list;
    
        /**
         * 构造方法
         */
        public LinkedListStack() {
            list = new LinkedList<>();
        }
    
        /**
         * 添加元素
         * @param t
         */
        @Override
        public void push(T t) {
            list.addFirst(t);
        }
    
        /**
         * 元素出栈
         * @return
         */
        @Override
        public T pop() {
            return list.removeFirst();
        }
    
        /**
         * 获取栈顶元素
         * @return
         */
        @Override
        public T peek() {
            return list.getFirst();
        }
    
        /**
         * 获取大小
         * @return
         */
        @Override
        public int getSize() {
            return list.getSize();
        }
    
        /**
         * 是否为空
         * @return
         */
        @Override
        public boolean isEmpty() {
            return list.isEmpty();
        }
    
        /**
         * 重写toString方法
         * @return
         */
        @Override
        public String toString() {
            StringBuilder res = new StringBuilder();
            res.append("Stack: top ");
            res.append(list);
            return res.toString();
        }
    
        public static void main(String[] args) {
            LinkedListStack<Integer> stack = new LinkedListStack<>();
    
            for (int i = 0; i < 5; i++) {
                stack.push(i);
                System.out.println(stack);
            }
    
            stack.pop();
            System.out.println(stack);
        }
    
    }
    
    - End -
    一个努力中的公众号
    关注一下吧
    以上为本篇文章的主要内容,希望大家多提意见,如果喜欢记得点个推荐哦
    作者:Maggieq8324
    本文版权归作者和博客园共有,欢迎转载,转载时保留原作者和文章地址即可。
  • 相关阅读:
    cmd 一键获取 所有连接过的wifi 密码
    MYSQL注入语句
    Web安全篇之SQL注入攻击
    Kali Linux 不能联网上网 解决方法
    php杂项
    laravel下的数据序列化
    填充数据
    css
    array
    GD库常用函数
  • 原文地址:https://www.cnblogs.com/maggieq8324/p/14993764.html
Copyright © 2011-2022 走看看