原来这才是使用LinkedList实现堆栈和队列的方式!

版权声明:本文为博主原创文章,如需转载请标明出去。 https://blog.csdn.net/sujin_/article/details/81588413

LinkedList采用的将对象存放在独立的空间中,而且在每个空间中还保存下一个链接的索引,但是缺点就是查找非常麻烦,要丛第一个索引开始。

使用LinkedList实现堆栈

堆栈:是一种先进后出的数据结构(容器),就像弹夹一样。

package test;
import java.util.LinkedList;

public class d1 {
    private LinkedList linkedList=new LinkedList();

    //压栈
    public void  push(Object value){//压
        linkedList.addFirst(value);
    }

    //出栈
    public Object pop(){//弹
        Object value=linkedList.getFirst();
        linkedList.removeFirst();
        return value;
    }

    //容器大小
    public int size(){
        return linkedList.size();
    }

    public static void main(String[] args) {
        d1 d1=new d1();
        d1.push("12");
        d1.push("13");
        d1.push("14");
        d1.push("15");

        while(d1.size()!=0){
            System.out.println(d1.pop());
        }
    }
}

使用LinkedList实现队列

队列:先进先出,当多个任务分配给打印机时,为了防止冲突,创建一个队列,把任务入队,按先入先出的原则处理任务。当多个用户要访问远程服务端的文件时,也用到队列,满足先来先服务的原则。

package test;

import java.util.LinkedList;

public class d2 {
    private LinkedList<Object> link;

    public d2(){
        link = new LinkedList();
    }

    public void myAdd(Object obj){
        link.addFirst(obj);
    }
    public Object myGet(){
        return link.removeLast();
    }

    public boolean isNull(){
        return link.isEmpty();
    }

    public static void main(String[] args)
    {
        d2 d2 = new d2();
        d2.myAdd("Java01");
        d2.myAdd("Java02");
        d2.myAdd("Java03");
        d2.myAdd("Java04");
        // System.out.println(dl.myGet());
        System.out.println("============");
        while (!d2.isNull())
        {
            System.out.println(d2.myGet());
        }
    }
}

​​​​----------------------------------------------因害怕失败而不敢放手一搏,永远不会成功。 ​​​​----------------------------------------------

猜你喜欢

转载自blog.csdn.net/sujin_/article/details/81588413