Java實現線性表 順序表示和鏈式表示(java)

2021-09-22 18:51:27 字數 2335 閱讀 2045

順序表示和鏈式表示的比較:

1.讀寫方式:順序表可以順序訪問,也可以隨機訪問;鍊錶只能從表頭順序訪問元素;

2.邏輯結構與物理結構:順序儲存時,邏輯上相鄰的元素其對應的物理儲存位置也相鄰;鏈式儲存時,邏輯上相鄰的元素,其物理儲存位置則不一定相鄰;

3.查詢、插入和刪除操作:

按值查詢,當線性表在無序的情況下,兩者的時間複雜度均為o(n);而當順序表有序時,可採用折半查詢,此時時間複雜度為o(log n);

按位查詢,順序表支援隨機訪問,時間複雜度為o(1);而鍊錶的平均時間複雜度為o(n)。

順序表的插入和刪除操作平均需要移動半個表長的元素;鍊錶的插入、刪除操作時,只需修改相關節點的指標即可。

4.空間分配:順序儲存一般是基於靜態儲存分配,一單儲存空間裝滿就不能擴充;鏈式儲存的節點空間只有在需要的時候申請分配,只要記憶體有足夠的空間即可分配。

順序表示的實現:

public class arraylist

//按給定size初始化順序表

public void initlist(int size) else

}//表長

public int length()

//按值查詢

public int locateelem(object e)

if(length ==0)

return arraylist[i];

}//插入

public void insert(int i, object e)

if(i >= maxsize)

for(int j=length;jlength-1)

if(length == 0)

for(int j=i;j單鏈表表示的實現:

class node

node(e e)

}public class linkedlist

//得到鍊錶的長度

public int length()

//按值查詢節點,返回該節點的位置

public int locateelem(e e)

return count;

}//找到第index個位置的節點

public nodegetnode(int index)

nodetemp = new node();

temp = header;

int count=1;

while(count != index)

return temp;

}//尾新增

public boolean addtolast(e e) else

size ++;

return true;

}//頭新增

public boolean addtofirst(e e) else

size ++;

return true;

}//插入到第index個的位置

public boolean insert(int index, e e)

//刪除第index個節點

public boolean delete(int index)

//判空

public boolean isempty()

public void destroylist()

//輸出

public string tostring()

return s.tostring();

}}

雙鏈表表示的實現

class tnode

tnode(e e)

}public class doublelinkedlist

//尾新增

public boolean addtolast(e e) else

size ++;

return true;

}

//找到第index個位置的節點

public tnodegetnode(int index)

tnodetemp = new tnode();

temp = header;

int count =1;

while(count != index)

return temp;

}//插入到第index個的位置

public boolean insert(int index,e e)

//刪除第index個節點

public boolean delete(int index)

}

線性表 順序表示和實現(順序表)

線性表 順序表 實現 方式 陣列 說明 1.資料元素從下標0開始 2.順序表元素個數初始是為0,有乙個時為1,即 size比元素個數大1 3.也是size比陣列下標大1 4.有上限 maxsize 線性表 順序表 實現 陣列 1.資料元素從下標0開始 2.順序表元素個數初始是為0,有乙個時為1,即 ...

線性表的順序表示和實現

1 線性表是最常用且最簡單的一種資料結構。簡言之,乙個線性表就是n個資料元素的有限序列。儲存空間是連續變化的 線性表的順序表示和實現 include include define list init size 10 define listincrement 10 define elemtype ch...

線性表的順序表示和實現

一 前言 線性表的順序表示是指用一組位址連續的儲存單元依次儲存線性表的資料元素。一般來說,線性表的第i個資料元素ai的儲存位置為 loc ai loc a0 i 1 xl 其中loc a0 表示的是第乙個資料元素的儲存位置,通常稱為線性表的起始位置或者基位址。l代表的時每個資料元素需要占用l個儲存單...