使用LinkedList创建一个堆栈容器

1、思路:

堆栈的思路:

话不多说看图解!

从图中可以看出,堆栈容器就是一个先进后出的容器?

什么意思呢?

举个例子,当我们洗碗碟盘子的时候,我们总是把第一个洗好的盘子放到桌上,慢慢的往上面叠,但是,在我们拿出来的时候,我们第一个放进去的盘子,总是会第一个拿出来,这就是堆栈容器的特性

但是在一般的代码中,我们查看集合遍历出来的顺序就是当初加进去的顺序,那么我们该怎么去做一个堆栈容器呢?

看代码!

2、第一种方式

正常顺序添加(最后加入的在数组第一位),第一个取第一个放入的

public class Demo2 {

	// 用linkedlist集合做一个堆栈容器
	public static void main(String[] args) {

		LinkedList list = new LinkedList<>();
		list.add("aa");
		list.add("ba");
		list.add("ca");

		DuiZhan d = new DuiZhan(list);
		System.out.println(d);
		System.out.println(d.pop());
		System.out.println(d.pop());
		System.out.println(d.pop());

	}

}


class DuiZhan {

	private LinkedList list;

	public DuiZhan(LinkedList list) {
		super();
		this.list = list;
	}


	// 弹栈:把子弹打出来
	public Object pop() { 
	
		return list.removeLast();
	}


}

其中removelast()方法就是返回移出数组中最后面的那个数据,也就是最开始放进去的那个盘子

 ,到这里也就实现了简单的堆栈容器

三、第二种方式

把加入的永远置顶(也就是最后加入的在数组的最末尾),正常从第一个开始拿,也就是添加的方式变了

看代码


 
    //压栈
    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());
        }
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值