0001 /* 0002 * 基于位置接口实现的双向链表节点类 0003 */ 0004 0005 package dsa; 0006 0007 public class DLNode implements Position { 0008 private Object element;//数据对象 0009 private DLNode prev;//指向前驱节点 0010 private DLNode next;//指向后继节点 0011 0012 /**************************** 构造函数 ****************************/ 0013 public DLNode() 0014 { this(null, null, null); } 0015 0016 public DLNode(Object e, DLNode p, DLNode n) 0017 { element = e; prev = p; next = n; } 0018 //注意三个参数的次序:数据对象、前驱节点、后继节点 0019 0020 /**************************** Position接口方法 ****************************/ 0021 //返回存放于该位置的元素 0022 public Object getElem() 0023 { return element; } 0024 0025 //将给定元素存放至该位置,返回此前存放的元素 0026 public Object setElem(Object e) 0027 { Object oldElem = element; element = e; return oldElem; } 0028 0029 /**************************** 双向链表节点方法 ****************************/ 0030 //找到后继位置 0031 public DLNode getNext() 0032 { return next; } 0033 0034 //找到前驱位置 0035 public DLNode getPrev() 0036 { return prev; } 0037 0038 //修改后继位置 0039 public void setNext(DLNode newNext) 0040 { next = newNext; } 0041 0042 //修改前驱位置 0043 public void setPrev(DLNode newPrev) 0044 { prev = newPrev; } 0045 }