java 代码
public class MyDoubleLink {public int linkSize = 0;public Node head = null;public Node tail = null;public class Node {public Object data;public Node prev = null;public Node next = null;public Node(Object data) {this.data = data;}}public void addLast(Object data) {linkSize++;Node newNode = new Node(data);if (head == null) {head = newNode;return;}if (tail == null) {tail = newNode;tail.prev = head;head.next = tail;return;}tail.next = newNode;newNode.prev = tail;tail = newNode;}public boolean delete(int index) {if (index < 0 || index >= linkSize) {return false;}linkSize--;if (index == 0) {if (head.next == null) {head = null;return true;}head = head.next;head.prev = null;return true;}if (index == (linkSize - 1)) {tail = tail.prev;tail.next = null;return true;}Node tmpNode = head;for (int i = 0; i < index; i++) {tmpNode = tmpNode.next;}tmpNode.prev.next = tmpNode.next;tmpNode.next.prev = tmpNode.prev;return true;}public Node get(int index) {if (index < 0 || index >= linkSize) {throw new RuntimeException("指针越界");}Node tmpNode = head;for (int i = 0; i < index; i++) {tmpNode = tmpNode.next;}return tmpNode;}public void print() {Node tmpNode = head;for (int i = 0; i < linkSize; i++) {System.out.println(tmpNode.data);tmpNode = tmpNode.next;}}
}