數(shù)據(jù)結(jié)構(gòu)的四種邏輯結(jié)構(gòu): 集合, 線性, 樹形, 網(wǎng)狀
linearity = ( D , R )
D = { a1, a2, a3, a4}
R = { <a1,a2> , <a2,a3> , <a3,a4>}
a1元素稱為第一個(gè)元素, 其他的元素都有一個(gè)直接前驅(qū), a4元素稱為最后一個(gè)元素, 其他的元素都有一個(gè)直接后繼
生活中的線性結(jié)構(gòu): 排隊(duì)
ADT List {
數(shù)據(jù)對(duì)象: D = {ai 屬于某個(gè)數(shù)據(jù)類型, i=0,1,2,3...}
D = { a0, a1, a2, a3, a4... an}, 所有的元素都是同一個(gè)數(shù)據(jù)類型
數(shù)據(jù)關(guān)系: R= { <ai, ai+1>}
數(shù)據(jù)操作:
getSize(): 返回線性表中元素的個(gè)數(shù)
isEmpty(): 判斷線性表是否為空, 線性為空返回true,否則返回false
insert( i , e ) : 在線性表的i索引值位置插入元素e, 如果索引值i越界報(bào)錯(cuò)
contains(e): 在線性表中判斷是否存在元素e,存在返回true,
indexOf(e) : 返回元素e在線性表中的索引值, 如果不存在元素e返回-1
remove( e) : 刪除線性表中第一個(gè)與e相同的元素, 刪除成功返回刪除的元素
remove( i ) : 刪除線性表中指定索引值的元素,返回刪除的元素, 如果索引值i越界報(bào)錯(cuò)
replace( i , e): 把純性表中索引值 為i 的元素替換為元素e, 如果索引值i越界報(bào)錯(cuò)
get( i): 返回線性表中索引值為i的元素, 如果索引值i越界報(bào)錯(cuò)
insertBefore( p , e): 在線性表中元素p的前面插入元素e
insertAfter( p, e) : 在線性表中元素p的后面插入元素e
}List;
抽象數(shù)據(jù)類型可以對(duì)應(yīng)的一個(gè)Java類, 數(shù)據(jù)對(duì)象與元素之間的關(guān)系 可以通過(guò)成員變量來(lái)存儲(chǔ)和表示;數(shù)據(jù)操作可以通過(guò)一組方法來(lái)實(shí)現(xiàn)