LinkedList是一種常見的資料結構,它的特性是在不連續的記憶體空間中保有連續性的資料

另外LinkedList也不需要特別定義串列長度,隨時可以做新增修改刪除

Java範例
LinkedList.java

1package mypackage;
2public class LinkedList {
3    private int val;
4    private LinkedList next = null;
5    private LinkedList prev = null;
6    public LinkedList(LinkedList prev, LinkedList next) {
7        this.next = next;
8        this.prev = prev;
9    }
10    public int getVal() {
11        return this.val;
12    }
13 
14    public LinkedList getNext() {
15        return this.next;
16    }
17 
18    public LinkedList getPrev() {
19        return this.prev;
20    }
21 
22    public void setNext(LinkedList next) {
23        this.next = next;
24    }
25 
26    public void setPrev(LinkedList prev) {
27        this.prev = prev;
28    }
29 
30    public void setVal(int val) {
31        this.val = val;
32    }
33}

index.java

1import mypackage.LinkedList;
2public class index {
3    public static void main(String[] argv) {
4        //建立LinkedList
5        int [] arr = {3,4,5,6,1,2,7};
6        LinkedList tmp = null;
7        //LinkedList第一筆node
8        LinkedList first = null;
9        for (int i = 0; i < arr.length; i++) {
10            LinkedList link = new LinkedList(tmp,null);
11            link.setVal(arr[i]);
12            if (tmp != null) {
13                //tmp為前一筆node
14                tmp.setNext(link);
15            } else {
16                first = link;
17            }
18            tmp = link;
19        }
20 
21        //插入node(插在第一筆之後)
22        LinkedList second = first.getNext();
23        LinkedList new_node = new LinkedList(first,second);
24        new_node.setVal(100);
25        first.setNext(new_node);
26        second.setPrev(new_node);
27 
28 
29        //顯示LinkedList走訪
30        while (first != null) {
31            System.out.println(first.getVal());
32            first = first.getNext();
33        }
34    }
35}
Categories: DataStructure