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

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

Java範例
LinkedList.java

package mypackage;
public class LinkedList {
    private int val;
    private LinkedList next = null;
    private LinkedList prev = null;
    public LinkedList(LinkedList prev, LinkedList next) {
        this.next = next;
        this.prev = prev;
    }
    public int getVal() {
        return this.val;
    }

    public LinkedList getNext() {
        return this.next;
    }

    public LinkedList getPrev() {
        return this.prev;
    }

    public void setNext(LinkedList next) {
        this.next = next;
    }

    public void setPrev(LinkedList prev) {
        this.prev = prev;
    }

    public void setVal(int val) {
        this.val = val;
    }
}

index.java

import mypackage.LinkedList;
public class index {
    public static void main(String[] argv) {
        //建立LinkedList
        int [] arr = {3,4,5,6,1,2,7};
        LinkedList tmp = null;
        //LinkedList第一筆node
        LinkedList first = null;
        for (int i = 0; i < arr.length; i++) {
            LinkedList link = new LinkedList(tmp,null);
            link.setVal(arr[i]);
            if (tmp != null) {
                //tmp為前一筆node
                tmp.setNext(link);
            } else {
                first = link;
            }
            tmp = link;
        }

        //插入node(插在第一筆之後)
        LinkedList second = first.getNext();
        LinkedList new_node = new LinkedList(first,second);
        new_node.setVal(100);
        first.setNext(new_node);
        second.setPrev(new_node);


        //顯示LinkedList走訪
        while (first != null) {
            System.out.println(first.getVal());
            first = first.getNext();
        }
    }
}
Categories: DataStructure