关于严蔚敏版数据结构顺序结构线性表Locate函数的定义与使用
--------------------------------------------------------------------------------------函数定义是这样的 按照严蔚敏教材中函数定义的要求
书中没有详细代码 自己编的 查过网上的 跟我的也差不多
Status LocateElem(SqList L,ElemType e,Status (*compare)(ElemType,ElemType) )
{
int i=1;
while( i<L.length+1 && !(*compare)(L.elem[i-1],e) )
i++;
if(i==L.length+1)
return FALSE;
return i;
}
Status compare(ElemType e1,ElemType e2)
{
if (e1==e2)
return 0;
if ( e1<e2 )
return -1;
return 1;
}
--------------------------------------------------------------------------------------
这是在main函数中测试LocateElem函数
书中靠后几节的双向链表中有相似的LocateElem与用法
LocateElem函数使用在网上没有 只有LocateElem的定义
LocateElem(L,3,(*compare)()) 这样的用法是书中标准代码
可是却不能正常运行 很明显 compare函数没有输入参数 但是书中代码却仍然是这样写的
不知道我是少定义了什么还是什么问题 一直提示 error C2660: 'compare' : function does not take 0 parameters
if( !LocateElem(L,3,(*compare)()) )
printf("线性表中存在数据元素3");
else
printf("线性表中不存在数据元素3");