如何通过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方法更加灵活。