栈的Java实现--链栈
链栈,顾名思义,就是以链表的形式实现的栈的相关操作,其实是功能弱化了的链表,如果已经阅读过链表的实现代码,那么链栈的实现显得更为容易。
链栈的基本结构:
链栈的入栈操作:
- 让top引用指向新的节点,新节点的next指向原来的top
- 记录栈内元素个数的size+1
![](https://i-blog.csdnimg.cn/blog_migrate/3251e9ce13d6295a601cb2f6be46cbe3.png)
链栈的出栈操作:
- top引用指向原栈顶元素的下一个元素(top.next),并释放原栈顶元素的引用
- 记录栈内元素个数的size-1
链栈的Java实现代码:
package com.liuhao.DataStructures;
public class LinkStack<T> {
private class Node {
private T data;// 保存节点的数据元素
private Node next;// 保存下一个节点的引用
public Node() {
}
public Node(T data, Node next) {
this.data = data;
this.next = next;
}
}
private Node top;// 存放栈顶节点
private int size = 0;// 存放栈中已有的元素个数
// 创建空链栈
public LinkStack() {
top = null;
}
// 已指定数据元素创建链栈,只有一个元素
public L