说明 1.删除表L中第i个数据元素(1<=i<=n),记作 DeleteElem(&L, i) a 指定序号i,删除ai↑ 1,ai+1 2.指定元素值x,删除表L中的值为x的元素,记作 DeleteElem(&L, X) 3.在元素ai之前插入新元素e(1<=i<=n+1) a 插入e↑ a e. a 4.査找——确定元素值(或数据项的值)为e的元素 给定:L=(a1,a2,,a1,,,,an)和元素e 若有一个a;=e,则称“查找成功”,i=1,2,,,n 否则,称“査找失败
说 明 1.删除表L中第i个数据元素(1<=i<=n),记作: DeleteElem(&L,i) L=(a1,a2,...,ai-1 , ai,ai+1,...,an) 指定序号i,删除ai ↑ L=(a1,a2,...,ai-1,ai+1,...,an) 2.指定元素值x,删除表L中的值为x的元素,记作: DeleteElem(&L,x); 3.在元素ai之前插入新元素e(1<=i<=n+1) L=(a1,a2,...,ai-1 , ai,...,an) 插入e ↑ L=(a1,a2,...,ai-1 ,e, ai,...,an) 4.查找----确定元素值(或数据项的值)为e的元素。 给定: L=(a1,a2,...,ai,...,an)和元素e 若有一个 ai=e,则称“查找成功”,i=1,2,...,n 否则,称“查找失败”
5.排序——按元素值或某个数据项值的递增(或递减)次序 重新排列表中各元素的位置。 例.排序前:L=(90,60,80,10,20,30) 排序后:L=(10,20,30,60,80,90) L变为有序表 6.将表La和表Lb合并为表Lc 例.设有序表 La=(2,14,20,45,80 Lb=(8,10,19,20,22,85,90) 合并为表 Lc=(2,8,10,14,19,20,20,22,45,80,85,90) 7.将表La复制为表Lb La=(2,14,20,45,80) Lb=(2,14,20,45,80
5.排序----按元素值或某个数据项值的递增(或递减)次序 重新排列表中各元素的位置。 例.排序前: L=(90,60,80,10,20,30) 排序后: L=(10,20,30,60,80,90) L变为有序表 6.将表La和表Lb合并为表Lc 例.设有序表: La=(2,14,20,45,80) Lb=(8,10,19,20,22,85,90) 合并为表 Lc=(2,8,10,14,19,20,20,22,45,80,85,90) 7.将表La复制为表Lb La= (2,14,20,45,80) Lb= (2,14,20,45,80)
可利用现有操作组成更复杂的操作: void union list &la, List &lb) alen- List length(La);∥求线性表La的长度 Lb len- List length(Lb);∥求线性表Lb的长度 for(i=l; i<=Lb len; 1++) Getelem(Lb,e),∥取Lb的的第个数据元素赋给e if(! Locateelem( La, e, equa)判断e在La中是否存在 ListInsert(a++ La len,e);∥不存在则插入
可利用现有操作组成更复杂的操作: void union(List &La,List &Lb) { La_len=List_length(La); //求线性表La的长度 Lb_len=List_length(Lb); //求线性表Lb的长度 for (i=1;i<= Lb_len;i++) { GetElem(Lb,i,e); //取Lb的的第i个数据元素赋给e if (!LocateElem(La,e,equal)) //判断e在La中是否存在 ListInsert(La,++La_len,e); //不存在则插入 } }