java中雙向連結串列的簡單模擬
阿新 • • 發佈:2018-12-29
具體程式碼實現
節點Node類:
public class Node { /* * 三個屬性分別對應節點的頭部,中部,尾部。 * 頭部存上一個節點的地址,尾部存下一個節點的地址 * 中部存可能是任何型別的資料 */ private Object pre; private Object obj; private Object next; //無參構造 public Node() { } //屬性對應的賦值取值方法 public Object getPre() { return pre; } public void setPre(Object pre) { this.pre = pre; } public Object getObj() { return obj; } public void setObj(Object obj) { this.obj = obj; } public Object getNext() { return next; } public void setNext(Object next) { this.next = next; } }
MyArrayList類:
public class MyLinkedList { /* * 定義首節點和尾節點 */ private Node first; private Node last; public static void main(String[] args) { MyLinkedList ml=new MyLinkedList(); //新增不同型別的資料到LinkedList中去 ml.add("啦啦啦"); ml.add(1); ml.add(false); } private void add(Object obj) { if(first==null) { //首節點的首尾元素都是null Node n=new Node(); n.setPre(null); n.setObj(obj); n.setNext(null); //最開始首尾節點都是首節點 first=n; last=n; }else { Node n=new Node(); n.setPre(last);//將上一個節點的地址儲存在本節點的頭部 n.setObj(obj); n.setNext(null); //在上一個節點的尾部加上本節點的地址 last.setNext(n); //尾節點前移 last=n; } } }