求大佬解答 线性表基本运算中有 按值查找Locate(L,x) 作用:若L中存在一个或多个值与x相等的元素,则返回第一个值为x的元素的逻辑序号
然后有这样一个算法:
void Delete(List &A,List B)
{ int i,k;ElemType x;
for(i=1;i<GetLength(B);i++)
{x=GetElem(B,i);
k=Locate(A,x);
if(k>0) DelElem(A,k);
}
}
这个算法是在线性表A中删除B中出现的元素的算法
可是Locate运算 只是返回多个与x值相等元素中的第一个元素的逻辑序号 如果A表中有多个相同的元素 那这个算法是怎么全部删除的 k不是只得到第一个元素的序号吗
然后有这样一个算法:
void Delete(List &A,List B)
{ int i,k;ElemType x;
for(i=1;i<GetLength(B);i++)
{x=GetElem(B,i);
k=Locate(A,x);
if(k>0) DelElem(A,k);
}
}
这个算法是在线性表A中删除B中出现的元素的算法
可是Locate运算 只是返回多个与x值相等元素中的第一个元素的逻辑序号 如果A表中有多个相同的元素 那这个算法是怎么全部删除的 k不是只得到第一个元素的序号吗