问题描述
- 数据结构__考试题,求大神帮忙
-
typedef int ElemType;
typedef struct{
ElemType elem[N];//n为分配的最大空间量
int length;
} SqList;试编写在线性表L中查找元素x的高效算法,若查询成功,则删除该元素,返回真,否则返回假。
bool SeachX(SqList &L,ElemType x){
......................................}
解决方案
int j = 0;
for (int i = 0; i < L.length + j; i++)
{
if (null == L.elem[i])
{
j++;
continue;
}
if (x == L.elem[i])
{
L.elem[i] = null;
L.length--;
return true;
}
}
return false;
刚才少了一行
解决方案二:
int j = 0;
for (int i = 0; i < L.length + j; i++)
{
if (null == L.elem[i])
{
j++;
continue;
}
if (x == L.elem[i])
{
L.elem[i] = null;
return true;
}
}
return false;
解决方案三:
int j = 0;
for (int i = 0; i < L.length + j; i++)
{
if (null == L.elem[i])
{
j++;
continue;
}
if (x == L.elem[i])
{
L.elem[i] = null;
return true;
}
return false;
}
解决方案四:
如果 elem 的数值是随机的,就采用顺序查找。
如果 elem 的数据是按从大到小、或从小到大,可以考虑二分查找。