All Downloads are FREE. Search and download functionalities are using the official Maven repository.

shz.core.node.LSNode Maven / Gradle / Ivy

package shz.core.node;

/**
 * 元素类型为E的单向链表节点
 * 

* [16+E(类型字节)+对齐填充]*n(n为元素个数) *

* B=16*(n+1)+(E+对齐填充)*n */ public class LSNode implements SNode> { private static final long serialVersionUID = 3195245272570790129L; public E val; protected LSNode next; protected LSNode(E val) { this.val = val; } public static LSNode of(E e) { return new LSNode<>(e); } public static LSNode of() { return of(null); } @Override public final LSNode next() { return next; } @Override public final void next(LSNode node) { next = node; } @Override public final LSNode addPrev(LSNode node) { addNext(node); E val = this.val; this.val = node.val; node.val = val; return this; } @Override public final void poll() { if (next != null) { this.val = next.val; next = next.next; } else this.val = null; } public final LSNode addNext(E e) { return addNext(of(e)); } @SafeVarargs public final LSNode addNext(E... es) { LSNode next = this; for (E e : es) next = next.addNext(e); return next; } public final LSNode addPrev(E e) { return addPrev(of(e)); } @SafeVarargs public final LSNode addPrev(E... es) { for (E e : es) addPrev(e); return this; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy