LinkedList 模拟栈和队列

本文介绍如何利用Java中的LinkedList来实现栈和队列的数据结构。通过addLast和removeLast方法实现栈的先进后出特性,而通过addLast和removeFirst方法实现队列的先进先出特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

LinkedList 比ArrayList 提供了更多的方法,其中有两个方法可以实现栈和队列的操作。

removeFirst() 移除并返回此列表中的第一个元素。
removeLast() 移除并返回此列表中的最后一个元素。

模拟栈:

import java.util.LinkedList;

class MyStack<E>{
    LinkedList<E> linkdList;

    public MyStack(){
         linkdList = new LinkedList<>(); 
    }

    public void push(E obj){
        linkdList.addLast(obj);     
    }

    public void pop(){
        System.out.println(linkdList.removeLast());   //每次先输出LinkedList集合中的最后一个元素,完成先进后出
    }                  

     boolean isEmepty(){  
        return linkdList.isEmpty();
    }
}

class TestStack {
    public static void main(String args []){

        MyStack<String> sk = new MyStack();

        sk.push("123");
        sk.push("456");
        sk.push("789");

        while(!sk.isEmepty()){
            sk.pop();            
        }
    }
}

输出
789
456
123

模拟队列:

import java.util.LinkedList;

class MyQueue<E>{
    LinkedList<E> linkdList;

    public MyQueue(){
         linkdList = new LinkedList<>(); 
    }

    public void offer(E obj){
        linkdList.addLast(obj);     
    }

    public void poll(){
        System.out.println(linkdList.removeFirst());   //每次先输出LinkedList集合中的第一个元素,完成先进先出
    }                  

     boolean isEmepty(){     
        return linkdList.isEmpty();
    }
}

class TestQueue {
    public static void main(String args []){

        MyQueue<String> sk = new MyQueue();

        sk.offer("123");
        sk.offer("456");
        sk.offer("789");

        while(!sk.isEmepty()){
            sk.poll();            
        }
    }
}

输出
123
456
789

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值