線性鍊錶包含單向鍊錶、雙向鍊錶和迴圈鍊錶。對比線性陣列,鍊錶在更新操作時比線性陣列的時間複雜度要低很多,所以
根據不同的需求選擇不同的資料結構很關鍵。
線性表特性:
線性陣列在記憶體中連續存放、查詢快、固定大小不適合動態更新資料;
線性鍊錶通過指標互連、插入、刪除快、動態分配空間
鍊錶簡單示例圖:
單向鍊錶操作類(注:mylist介面在資料結構系列一之線性陣列中定義):
package com.sf.bdp.link;
import com.sf.bdp.mylist;
/** * created by swcks on 2018/6/1/001.
*/public class mylinkedlist implements mylist
/*//頭插法
public void add(object obj) */
//尾插法
public void add(object obj)
temp.next = node;
size++;
}public object set(int i, object obj)
node temp = head;
int index = 0;
while (indexsize-1)
node temp = head;
int index = 0;
while(indexsize-1)
node temp = head;
int index = 0;
while (index雙向鍊錶操作類:
package com.sf.bdp.link;
import com.sf.bdp.mylist;
/** * created by swcks on 2018/6/2/002.
*/public class mydoublelinkedlist implements mylist
/*//頭插法
public void add(object obj) else
first = node;
size++;
}*///尾插法
public void add(object obj)else
last = node;
size++;
}public object set(int i, object obj)
node temp = first;
int index = 0;
while (indexsize-1)
node temp = first;
int index = 0;
while (indexsize-1)
node temp = first;
int index = 0;
while (index
迴圈鍊錶是在鍊錶的基礎之上將尾節點的後繼指向頭節點。
資料結構之線性鍊錶
線性鍊錶是一種資料儲存結構,其分為順序儲存結構和鏈式儲存結構。順序儲存結構儲存資料的方式和平時接觸到的陣列是一樣的,其資料結構定義如下 define maxsize 100 typedef struct sqlist 關於鍊錶的初始化,尋找資料,插入資料,刪除資料等操作,與陣列類似,這裡就不做詳細介...
資料結構系列之鍊錶
鍊錶是一種線性的資料結構型別,由一系列的節點組成。每個節點由儲存資料的資料域跟指向下乙個節點的指標域構成。鍊錶又有分單向鍊錶,雙向鍊錶,迴圈鍊錶等。單向鍊錶 單向鍊錶的結構示意圖就跟上圖結構一樣,只能單向遍歷,最開始的稱之為頭節點,最後乙個稱之為尾節點。遍歷或者查詢順序只能是從頭節點向尾節點方向依次...
資料結構系列 線性表(二)
總結 由於順序儲存最大的缺點就是增刪慢,在增刪操作後需要移動大量元素,比較耗費時間。所以鏈式儲存解決了這個問題。物理儲存單元上非連續的 非順序的儲存結構。鏈式結構中,除了儲存資料元素外,還需要儲存後繼的儲存位址。儲存資料元素資訊的域叫作 資料域 儲存後繼位置的域叫作 指標域 指標域中儲存的資訊叫作 ...