蘇先生資料結構學習之線性表

2021-09-02 19:14:35 字數 2450 閱讀 6738

線性表的特點

如上圖所示,a2是a1的後繼,a1是a2的前驅,其中a1沒有前驅,an沒有後繼,n為線性表的長度,當n==0時,線性表為空

其中順序儲存方式的表稱為順序表,鏈式儲存方式的表稱為鍊錶

一、順序表

儲存位置連續,可以很方便計算各個元素的位址,查詢效率高,增刪效率低

**實現add、remove等操作

public

class

myarraylist

arr = temp;

} arr[size++

]= obj;

}/**

* 移除下標為index元素

* @param index 第幾個元素

* @return 是否移除成功

*/public

boolean

remove

(int index)

for(

int j =

0; j <

size()

; j++

) size--

;return

true;}

}return

false;}

/** * 獲取指定索引上的元素

* @param index

* @return 第index上的索引的元素

*/public object get

(int index)

/** * 獲取元素個數

* @return

*/public

intsize()

}

二、鍊錶

線性表的鏈式儲存結構的特點是用一組任意的儲存單元儲存線性表的資料元素,這組儲存單元可以是連續的,也可以是不連續的,增刪效率高,查詢效率相對低

**實現add、remove等操作

public

class

mylinkedlist

implements

iterable

}public

mylinkedlist()

public

void

clear()

public

intsize()

public

boolean

isempty()

/** * 直接在鍊錶後端插入元素

* @param x

*/public

void

add(e x)

/** * 根據索引取到元素,在元素後面插入新元素

* @param index

* @param x

*/public

void

add(

int index,e x)

/** * 根據下標移除元素

* @param index

* @return

*/public e remove

(int index)

/** * 通過獲取乙個新節點,然後按照指示的順序改變指標而完成乙個雙鏈表中的插入操作

* @param p

* @param x

*/public

void

addbefore

(node

p,e x)

/** * 將p前乙個節點指向後乙個節點,後乙個節點指向前乙個節點

* @param p

* @return

*/private e remove

(node

p)/**

* 根據下標取元素

* @param index

* @return

*/private node

getnode

(int index)

private node

getnode

(int index,

int lower,

int upper)

else

return p;

}private

void

doclear()

@override

public iterator

iterator()

private

class

linkedlistiterator

implements

iterator

@override

public e next()

@override

public

void

remove()

}}

資料結構學習 線性表

線性表一般分為順序結構和鏈式結構。順序表裡面元素的位址是連續的,如陣列 鍊錶裡面節點的位址不是連續的,是通過指標連起來的,如單鏈表 順序結構 優點 易於查詢,索引快 list n 這樣的操作,o 1 複雜度。缺點 擴充套件性弱,不易刪除 插入,這兩項操作均是o n 的時間複雜度 鍊錶結構 優點 擴充...

資料結構學習 線性表

考試前複習下資料結構,把一些知識點整理在這!主要參考了殷人昆主編的 資料結構 用物件導向方法與c 語言描述 這本書,以及中山大學劉聰老師的課件內容!鍊錶雙鏈表 線性表 linear list 是由n n 0 個資料元素 結點 a 0 a 1 a 2 a n 1 組成的有限序列。維基百科 線性表是乙個...

資料結構學習 線性表

鏈式儲存用指標表示邏輯結構,可以很方便的表示各種邏輯結構。順序儲存結構中,插入和刪除結點需要大量的移動元素,效率很低。順序儲存結構既可以順序訪問也可以隨機訪問,而鏈式結構只可以順序訪問。對n個元素進行排序的時間複雜最快也要o n 初始有序 通常是o nlog2n 或o n 2 單鏈表只能順序查詢插入...