212线性表的运算 常见线性表的运算有 置空表 SETNULL(&L)将线性表L置成空表 2.求长度 LENGTH(L)求给定线性表L的长度 3.取元素GET(L,i)若l≤ length(L),则取第i个位 入置上的元素,否则取得的元素为NUL 4.求直接前趋 PRIOR(L,X)求线性表L中元素值为X 的直接前趋,若ⅹ为第一个元素,前驱为NUL
2.1.2 线性表的运算 常见线性表的运算有: 1.置空表 SETNULL(&L)将线性表L置成空表 2. 求长度 LENGTH(L) 求给定线性表L的长度 3. 取元素 GET(L,i) 若1≤i≤length(L),则取第i个位 置上的元素,否则取得的元素为NULL。 4.求直接前趋 PRI0R(L,X)求线性表L中元素值为X 的直接前趋,若X为第一个元素,前驱为NULL
5.求直接后继NEXT(L,Ⅹ)求线性表L中元素值 为ⅹ直接后继,若ⅹ为最后一个元素,后继为NUL 6.定位函数 LOCaTE(L,x)在线性表L中查找 值为X的元素位置,若有多个值为ⅹ,则以第一个为 准,若没有,位置为0 7.插入 INSERT(&L,X,i)在线性表L中第个 位置上插入值为Ⅹ的元素 8.删除 DELETE(&L,i)删除线性表L中第i个 位置上的元素
5.求直接后继 NEXT(L,X)求线性表L中元素值 为X直接后继,若X为最后一个元素,后继为NULL。 6.定位函数 LOCATE(L,X) 在线性表L中查找 值为X的元素位置,若有多个值为X,则以第一个为 准,若没有,位置为0。 7.插入 INSERT(&L,X,i)在线性表L中第i个 位置上插入值为X的元素。 8.删除 DELETE(&L,i) 删除线性表L中第i个 位置上的元素
213线性表的抽象数据类型描述 上述这些操作可用抽象数据类型描述为: adt Linearlist is Data 个线性表L定义为L(a12a2…,2a),当L=()时定义 为一个空表 operation void setnull(&L)∥.线性表L置成空表 int Length(L)/求给定线性表L的长度 elemtype Get(Li)∥取线性表L第个位置上的元素
2.1.3线性表的抽象数据类型描述 上述这些操作可用抽象数据类型描述为: ADT Linearlist is Data: 一个线性表L定义为L=(a1 ,a2 ,…,an ),当L=( )时定义 为一个空表 operation: void setnull(&L) //将线性表L置成空表 int Length(L) //求给定线性表L的长度 elemtype Get(L,i) //取线性表L第i个位置上的元素
gs' elemtype Prior(x)∥求线性表L中元素值为X的直接前 趋 elemtype Next(L2x)/求线性表L中元素值为x的直接 后继 int Locate(L,x)∥在线性表L中查找值为X的元素位 置 void Insert((&Lxi)∥在线性表L中第i个位置上插入 值为X的元素 void Delete((&L,i)∥删除线性表L中第讠个位置上的元 素 END Linearlist
elemtype Prior(L,x) //求线性表L中元素值为X的直接前 趋 elemtype Next(L,x) //求线性表L中元素值为X的直接 后继 int Locate(L,x) //在线性表L中查找值为X的元素位 置 void Insert(&L,x,i) //在线性表L中第i个位置上插入 值为X的元素 void Delete(&L,i) //删除线性表L中第i个位置上的元 素 END Linearlist
:?例21假设线性表L=2356.89,7618)1=3x=56y=88则 对L的一组操作及结果如下 x21egu所得结果为5 Ge(Li)∥所得结果为89 Pior(L,x)所得结果为23 Nex(L,x)∥所得结果为89 Locate((Lx)/所得结果为2 Insert(&L,yi)所得结果为(23,56,8889,76,18) Delete(&L,计+1)∥所得结果为(23,56,88,76,18)
例2-1 假设线性表L=(23,56,89,76,18),i=3,x=56,y=88,则 对L的一组操作及结果如下: Length(L); //所得结果为5 Get(L,i) //所得结果为89 Prior(L,x) //所得结果为23 Next(L,x) //所得结果为89 Locate(L,x) //所得结果为2 Insert(&L,y,i) //所得结果为(23,56,88,89,76,18) Delete(&L,i+1) //所得结果为(23,56,88,76,18)