順序儲存結構的缺點:插入和刪除時需要移動大量元素
鏈式儲存結構的特點:用一組任意的儲存單元儲存線性表的資料元素
資料結構
儲存分配方式
時間效能
空間效能
順序儲存結構
用一段連續的儲存單元一次儲存線性表的資料元素
查詢:o(1) 插入刪除:o(n)
需要預分配儲存空間,分大了浪費,分小了易發生上溢
單鏈表結構
用一組任意的儲存單元存放線性表的元素
查詢:o(n) 插入刪除:o(1)
動態調整
1、定義介面
package com.stucture.list;
/**
* 線性表順序儲存結構的介面
* 指的是用一段位址連續的儲存單元一次儲存線性表的資料元素
* @classname: isqlist
*/
public inte***ce ilist
2、定義節點類
package com.stucture.list.linklist;
/**
* 鍊錶中的結點
* @classname: node
* @author 小學徒
* @date 2013-2-27
*/public
class node
public
void
setdata(t data)
public nodegetnext()
public
void
setnext(nodenext)
}
3、實現鍊錶和基本操作
package com.stucture.list.linklist;
import com.stucture.list.ilist;
/**
* 單鏈表
* @classname: linklist
*/public
class linklistimplements ilist
//獲取元素
public t getelem(int loc)
n = n.getnext();
j++;
} return
null;
} //插入元素
public boolean insertelem(int loc, t t)
if(head == null && loc == 1) else
if(head != null && loc == 1) else
nodetempnode = new node(); //生成乙個新的結點
tempnode.setdata(t);
tempnode.setnext(n.getnext()); //將n的後繼結點賦值給新的結點的後繼
n.setnext(tempnode);
length++;
} return
true;
} //刪除元素
public t deleteelem(int loc)
t old;
if(head != null && loc == 1) else
old = n.getnext().getdata();
n.setnext(n.getnext().getnext());
} length--;
return old;
} public nodegethead()
public
void
sethead(nodehead)
public
intgetlength()
public
void
setlength(int length)
}
線性表的順序儲存結構:
線性表的鏈式儲存結構
線性表的鏈式儲存結構 順序儲存結構不足的解決辦法 缺點 最大的缺點就是插入和刪除時需要移動大量元素。為了表示每個資料元素 ai與其直接後續資料元素 ai 1 之間的邏輯關係,對資料元素 ai來說,除了儲存其本身的資訊之外,還需儲存乙個指示其直接後續的資訊。我們把儲存資料元素資訊的域稱為資料域,把儲存...
線性表的鏈式儲存結構
線性表的鏈式儲存結構,雙向鍊錶實現 package 線性表 public class dulinklist public node t data,node prev,node next 儲存該鍊錶的頭節點 private node header 儲存該鍊錶的尾節點 private node tail...
線性表的鏈式儲存結構
用自己的話來說就是和線性表一樣,只不過多了後邊可以儲存的位置 n個這樣的結點就是鍊錶如圖 注意 單鏈表指的是單一方向的鍊錶,只包含乙個指標域,只能從左到右,不能從右到左 頭節點 頭節點就是鍊錶中第乙個結點,它有真實頭節點和虛擬頭節點 真實頭節點就是第乙個結點用於儲存資料 虛擬頭節點第乙個結點不許儲存...