2.1.2线性表的运算常见线性表的运算有:1.置空表ClearList(&L)将线性表L置成空表2.求长度 ListLength(L)求给定线性表L的长度3.取元素 GetElem (L,i.e)若1<i<length(L),则取 第i个位置上的元素用e返回,否则取得的元素为NULL。4.求直接前趋 PriorElem(L,X,&pre e)求线性表L中元素值为X的直接前趋用pre e返回,若X为第一个元素前驱为NULL
2.1.2 线性表的运算 常见线性表的运算有: 1.置空表 ClearList(&L)将线性表L置成空表 2. 求长度 ListLength(L) 求给定线性表L的长度 3. 取元素 GetElem(L,i,e) 若1≤i≤length(L),则取 第i 个位置上的元素用e返回,否则取得的元素为NULL。 4.求直接前趋 PriorElem(L,X,&pre_e)求线性表L中 元素值为X的直接前趋用pre_e返回,若X为第一个元素, 前驱为NULL
5.求直接后继 NextElem(L,X,&next e)求线性表L中元素值为X直接后继用nexte返回,若X为最后一个元素,后继为NULL。6.定位函数 LocateElem(L,X)在线性表L中查找值为X的元素位置,若有多个值为X,则以第一个为准,若没有,位置为0。7.插入ListInsert(&L,i,X)在线性表L中第i个位置上插入值为X的元素。8. 删除ListDelete(&L,i)删除线性表L中第i个位置上的元素
5.求直接后继 NextElem(L,X,&next_e)求线性 表L中元素值为X直接后继用next_e返回,若X为最 后一个元素,后继为NULL。 6.定位函数 LocateElem(L,X) 在线性表L中查找 值为X的元素位置,若有多个值为X,则以第一个为 准,若没有,位置为0。 7.插入 ListInsert(&L,i,X)在线性表L中第i个 位置上插入值为X的元素。 8.删除 ListDelete(&L,i) 删除线性表L中第i个 位置上的元素
2.1.3线性表的抽象数据类型描述上述这些操作可用抽象数据类型描述为:ADT List (Data:一个线性表L定义为L=(ai,a2.…,an),当L=()时定义为一个空表operation:voidClearList(&L)//将线性表L置成空表intListLength(L)//求给定线性表L的长度1/取线性表L第i个位置上的elemtype GetElem(L,I,&e)元素
2.1.3 线性表的抽象数据类型描述 上述这些操作可用抽象数据类型描述为: ADT List { Data: 一个线性表L定义为L=(a1 ,a2 ,.,an ),当L=( )时定义 为一个空表 operation: void ClearList(&L) //将线性表L置成空表 int ListLength(L) //求给定线性表L的长度 elemtype GetElem(L,I,&e) //取线性表L第i个位置上的 元素
elemtype PriorElem(L,x,&pre e)//求线性表L中元素值为X的直接前趋elemtype NextElem(L,x,&next_e) //求线性表L中元素值为X的直接后继intLocateElem(L,x)//在线性表L中查找值为X的元素位置voidListInsert(&L,x,i)//在线性表L中第i个位置上插入值为X的元素voidListDelete(&L,i)//删除线性表L中第i个位置上的元素}ADT List
elemtype PriorElem(L,x,&pre_e) //求线性表L中元素值 为X的直接前趋 elemtype NextElem(L,x,&next_e) //求线性表L中元素 值为X的直接后继 int LocateElem(L,x) //在线性表L中查找值为X的元 素位置 void ListInsert(&L,x,i) //在线性表L中第i个位置上插 入值为X的元素 void ListDelete(&L,i) //删除线性表L中第i个位置上 的元素 }ADT List
例2-1 假设线性表L=(23,56,89,76,18),i=3,x=56,y=88,则对L的一组操作及结果如下:1/所得结果为5ListLength(L);//所得结果为89GetElem(L,i)//所得结果为23PriorElem(L,x)//所得结果为89NextElem(L,x)//所得结果为2LocateElem(L,x))//所得结果为(23,56,88,89,76,18)ListInsert(&L,y,i)ListDelete(&L,i+1)//所得结果为(23,56,88,76,18)
例2-1 假设线性表L=(23,56,89,76,18),i=3,x=56,y=88,则 对L的一组操作及结果如下: ListLength(L); //所得结果为5 GetElem(L,i) //所得结果为89 PriorElem(L,x) //所得结果为23 NextElem(L,x) //所得结果为89 LocateElem(L,x) //所得结果为2 ListInsert(&L,y,i) //所得结果为(23,56,88,89,76,18) ListDelete(&L,i+1) //所得结果为(23,56,88,76,18)