線性表及其基本運(yùn)算
一。線性表(linear_list)
線性表是n個(gè)數(shù)據(jù)元素的有限序列
記為:L = (?a1,a2,...,an? )
數(shù)據(jù)元素之間的關(guān)系是:
a(i-1)領(lǐng)先于ai, ai領(lǐng)先于a(i+1)
稱a(i-1)是ai的直接前驅(qū)元素;a(i+1)是ai的直接后繼元素
除a1外,每個(gè)元素有且僅有一個(gè)直接前驅(qū)元素,
除an外,每個(gè)元素有且僅有一個(gè)直接后繼元素,
?
當(dāng)n = 0 時(shí),稱為空表。
線性表是最常用且最簡(jiǎn)單的一種數(shù)據(jù)結(jié)構(gòu)
它的形式化定義為:linear_list = ( D ,R )
其中,D = {ai? | ai 屬于 D0, i = 1,2,...,n,??? n>?0}
R = {? N },N ={??<a(i - 1) ,ai ?> } | a(i - 1),ai屬于D0,i = 2,3,...,n}
D0為某個(gè)數(shù)據(jù)對(duì)象,N是一個(gè)序偶的集合,
它表示線性表中數(shù)據(jù)元素之間的相鄰關(guān)系
二。基本運(yùn)算
INITIATE( L )?? ? 初始化操作???????? 設(shè)定一個(gè)空的線性表 L
LENGTH( L )??? ?求長(zhǎng)度函數(shù)??????? ???函數(shù)值為線性表L中數(shù)據(jù)元素的個(gè)數(shù)
GET(L , i ?)???? 取元素函數(shù)??????? ?1 <= i <=LENGTH( L )時(shí),返回L中的第i個(gè)數(shù)據(jù)元素,
?????????????????????????????????????????????????????????否則為空元素NULL, i稱為該數(shù)據(jù)元素在L中的? 位序
PRIOR(L , elm)? 求前驅(qū)函數(shù)??? elm為L(zhǎng)中的一個(gè)數(shù)據(jù)元素,若它的位序大于1,
?????????????????????????????????????????????????????????則函數(shù)值為elm前驅(qū),否則為NULL
NEXT(L ,elm)? 求后繼函數(shù)???? 若elm的位序小于表長(zhǎng),則函數(shù)值為elm的后繼,否則為NULL
LOCATE( L , x )???? 定位函數(shù)?????????給定值x,若x不在表中,則返回0,否則,
????????????????????????????????????????????????????????????返回x在表中第一次出現(xiàn)時(shí)的位序
INSERTE ( L , i , b)????????前插操作????????????在第i個(gè)元素之前插入新元素b,
????????????i取值范圍為:? 1 <= i <=(n+1); i = ( n + 1 )表示在表尾插入,n為表長(zhǎng)
DELETE(L ,i )?? 刪除操作??? 刪除線性表L中的第i 個(gè)元素,? 1<= i<= n
EMPTY ( L , i )???? 判空表函數(shù)????? 若L為空表,則返回布爾值"true",
?????????????????????????????????????????????????????????否則返回"false"
CLEAR (L)?????? 表置空操作??????????將L置為空表