首页 > 代码库 > 数据结构(Java语言)——LinkedList简单实现

数据结构(Java语言)——LinkedList简单实现

下面是一个能够使用的LinkedList泛型类的实现。这里的链表类名为MyLinkedList,避免与类库中反复。

MyLinkedList将作为双链表实现,并且保留到该表两端的引用。这样仅仅要操作发生在已知的位置,就能够保持每一个操作花费常数时间的代价。这个已知的位置能够是端点。也能够是由迭代器指定的一个位置。

设计方面,主要分为三个部分实现:

  1. MyLinkedList类本身,包括到两端的链、表的大小以及一些方法。
  2. Node类,它可能是一个私有的嵌套类。一个节点包括数据以及到前一个节点的链和到下一个节点的链,另一些适当的构造方法。
  3. LinkedListIterator类,该类抽象了位置的概念,是一个私有类,并实现接口Iterator。

    包括方法next(),hasNext(),remove()的实现。

import java.util.ConcurrentModificationException;
import java.util.Iterator;
import java.util.NoSuchElementException;

public class MyLinkedList<AnyType> implements Iterable<AnyType> {
	private int theSize;
	private int modCount = 0;
	private Node<AnyType> beginMarker;
	private Node<AnyType> endMarker;

	private static class Node<AnyType> {
		public AnyType data;
		public Node<AnyType> prev;
		public Node<AnyType> next;

		public Node(AnyType d, Node<AnyType> p, Node<AnyType> n) {
			data = http://www.mamicode.com/d;>

数据结构(Java语言)——LinkedList简单实现