Java中如何通过LinkedList来模拟栈的结构

如何通过LinkedList来模拟栈的结构

LinkedList类为链式结构的意思,通常用于双向链表的操作,但在我们某些操作时,可能希望其能模拟栈的操作。

栈也分为线性栈和链式栈,在LinkedList中实现的栈就是链式的栈,其结点的构造与链式结点的构造基本相同,只是应用场景有所不同,所以我们可以使用LinkedList来实现栈的操作。

栈的特性:从哪里进,就从哪里出;后进的能先出。

在栈的操作中这种进的方式被称为压栈,在LinkedList中可以使用其专用的方法来实现这种操作;代码如下:

LinkedList<Integer> data = new LinkedList<>();
//压栈
data.push(1314);
data.push(52);

在栈中,出的方式被称为弹栈,LinkedList中专门用于弹栈的方法为:pop()
实现代码如下:

LinkedList<Integer> data = new LinkedList<>();
data.push(1314);
data.push(52);
Integer i1 = data.pop();
//弹出的值为52
Integer i2 = data.pop();
//弹出的值为1314

除了该种LinkedList类专门用于压栈的方法,在LinkedList中还可以通过在头结点位置插入、删除结点的方式来实现压栈和弹栈的方式,代码如下:

LinkedList<Integer> data = new LinkedList<>();
data.addFirst(1314);
data.addFirst(52);
Integer i1 = data.removeFirst();
Integer i2 = data.removeFirst();

在LinkedList中可以通过上述方法实现压栈和弹栈的目的,使得LinkedList方法更加灵活。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值