LinkedList源代码阅读
时间: 2023-06-09 14:05:53 浏览: 92
LinkedList代码.rar
LinkedList是Java中的一个双向链表数据结构。其实现主要由Node类组成,每个Node对象包含了一个值,以及指向前一个Node和后一个Node的指针。以下是LinkedList类的基本实现:
```
public class LinkedList<E> {
private int size;
private Node<E> first;
private Node<E> last;
private static class Node<E> {
private E item;
private Node<E> next;
private Node<E> prev;
Node(Node<E> prev, E element, Node<E> next) {
this.item = element;
this.next = next;
this.prev = prev;
}
}
public LinkedList() {
size = 0;
first = null;
last = null;
}
public void add(E element) {
Node<E> newNode = new Node<>(last, element, null);
if (last == null) {
first = newNode;
last = newNode;
} else {
last.next = newNode;
last = newNode;
}
size++;
}
public E removeLast() {
if (last == null) {
throw new NoSuchElementException();
}
Node<E> nodeToRemove = last;
E value = nodeToRemove.item;
last = nodeToRemove.prev;
if (last == null) {
first = null;
} else {
last.next = null;
}
nodeToRemove.item = null;
nodeToRemove.prev = null;
size--;
return value;
}
//...其他方法
}
```
LinkedList类的构造函数只是简单地将size、first和last初始化为0,null和null。add()方法通过创建新Node对象并将其添加到链表的末尾来添加元素。removeLast()方法则从链表的末尾删除元素并返回其值。其他方法,如get()、set()和remove()都遵循相同的基本模式:沿着链表前进,直到找到所需的节点,然后执行所需的操作。这些操作包括插入、删除或更新节点。
阅读全文