数据结构----LinkedList链表
作者:
pgydbh | 来源:发表于
2018-08-21 14:00 被阅读11次
结构
链表,双向,加速查询。
需要size()----大小
需要put(i)----放入
需要get(i)----取出
代码
public class LinkedList<T> {
private int size;
private Node head;
private Node end;
private Node poi;
public LinkedList(){
head = new Node<>();
end = new Node<>();
head.next = end;
end.prev = head;
}
public int size(){
return size;
}
public void put(T t){
if (poi == null){
poi = new Node<>();
head.next = poi;
end.prev = poi;
} else {
Node node = new Node();
poi.next = node;
node.prev = poi;
node.next = end;
end.prev = node;
poi = node;
}
poi.t = t;
size++;
}
public T get(int i){
if (i >= 0 && i < size){
if (i < size >> 1){
Node temp = head;
for (int j = 0; j < i; j++){
temp = temp.next;
}
return (T) temp.next.t;
} else {
Node temp = end;
for (int j = 1; j < size - i; j++){
temp = temp.prev;
}
return (T) temp.prev.t;
}
} else {
return null;
}
}
public static class Node<T>{
public T t;
public Node<T> prev;
public Node<T> next;
}
}
本文标题:数据结构----LinkedList链表
本文链接:https://www.haomeiwen.com/subject/elzdiftx.html
网友评论