線性表的鏈式儲存結構,雙向鍊錶實現:
package 線性表;
public class dulinklist
public node(t data,node prev,node next) }
//儲存該鍊錶的頭節點
private node header;
//儲存該鍊錶的尾節點
private node tail;
//儲存該鍊錶中已包含的節點數
private int size;
//建立空鍊錶
public dulinklist()
//以指定資料元素來建立鍊錶,該鍊錶只有乙個元素
public dulinklist(t element)
//返回鍊錶的長度
public int length()
//獲取鏈式線性表中索引為index處的元素
public t get(int index)
//根據索引index獲取指定位置的節點
private node getnodebyindex(int index)
if(index<=size/2)
}} else
}} return null; }
//查詢鏈式線性表中指定元素的索引
public int locate(t element)
//如果還是空表
if(header==null)
else
else
} }//採用尾插法為鍊錶新增新節點
public void add(t element)
else
size++;
} //採用頭插法為鍊錶新增新節點
public void addatheader(t element)
size++;
} //刪除鏈式線性表中指定索引處的元素
public t delete(int index)
node del=null;
//如果被刪除的是header節點
if(index==0)
else
//將被刪除節點的prev,next引用賦為null
del.prev=null;
del.next=null;
} size--;
return del.data;
} //刪除鏈式線性表中的最後乙個元素
public t remove()
//判斷鏈式線性表是否為空鍊錶
public boolean empty()
//清空線性表
public void clear()
public string tostring()
else
int len=sb.length();
} }public string reversetostring()
else
int len=sb.length();
} }}
線性表的鏈式儲存結構
線性表的鏈式儲存結構 順序儲存結構不足的解決辦法 缺點 最大的缺點就是插入和刪除時需要移動大量元素。為了表示每個資料元素 ai與其直接後續資料元素 ai 1 之間的邏輯關係,對資料元素 ai來說,除了儲存其本身的資訊之外,還需儲存乙個指示其直接後續的資訊。我們把儲存資料元素資訊的域稱為資料域,把儲存...
線性表的鏈式儲存結構
順序儲存結構的缺點 插入和刪除時需要移動大量元素 鏈式儲存結構的特點 用一組任意的儲存單元儲存線性表的資料元素 資料結構 儲存分配方式 時間效能 空間效能 順序儲存結構 用一段連續的儲存單元一次儲存線性表的資料元素 查詢 o 1 插入刪除 o n 需要預分配儲存空間,分大了浪費,分小了易發生上溢 單...
線性表的鏈式儲存結構
用自己的話來說就是和線性表一樣,只不過多了後邊可以儲存的位置 n個這樣的結點就是鍊錶如圖 注意 單鏈表指的是單一方向的鍊錶,只包含乙個指標域,只能從左到右,不能從右到左 頭節點 頭節點就是鍊錶中第乙個結點,它有真實頭節點和虛擬頭節點 真實頭節點就是第乙個結點用於儲存資料 虛擬頭節點第乙個結點不許儲存...