首页 > 代码库 > Java实现双链表
Java实现双链表
public class DoubleLink<T> { //存放第一个指针 private Node<T> firstNode; //存放最后一个指针 private Node<T> lastNode; //存放链大小 private int size; //构造函数 public DoubleLink() {} // --------------------------------add()系列---------------------------------- public void addFirst(T data) { linkFirst(data); } public void addLast(T data) { linkLast(data); } public void add(T data) { linkLast(data); } public void linkFirst(T data) { Node f = this.firstNode; Node newNode = new Node<T>(data, f, null); this.firstNode = newNode; if (f == null) { // 1 如果等于空,说明他没有前一个Node // 2 如果等于空,说明这是一张空链表,所以此时,this.lastNode=newNode,即:链的最后一个和第一个重合 this.lastNode = this.firstNode; } else { // 1 如果不等于空,说明存在firsrNode链表 f.prev = this.firstNode; } this.size++; } public void linkLast(T data) { if (this.firstNode == null) { linkFirst(data); return; } // 如果链中不是为空,那么就有firstNode,lastNode Node newNode = new Node<T>(data, this.lastNode, null); this.lastNode.next = newNode; this.lastNode = newNode; this.size++; } // --------------------------------remove()系列-------------------------------- public T removeFirst() { if (this.firstNode == null) { return null; } //记录返回数据 T data = http://www.mamicode.com/this.firstNode.data;>
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。