LinkedList是一種常見的資料結構,它的特性是在不連續的記憶體空間中保有連續性的資料
另外LinkedList也不需要特別定義串列長度,隨時可以做新增修改刪除
Java範例
LinkedList.java
1 | package mypackage; |
2 | public 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
1 | import mypackage.LinkedList; |
2 | public 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 | } |