关于严蔚敏版数据结构教材中顺序结构线性表Locate函数的使用问题
晕 刚才没发表出来重新发表一次
--------------------------------------------------------------------------------------
函数定义是这样的 按照严蔚敏教材中函数定义的要求
书中没有详细代码 自己编的 查过网上的 跟我的也差不多
Status LocateElem(SqList L,ElemType e,Status (*compare)(ElemType,ElemType) )
{
int i=1;
while( i<=L.length && (*compare)(L.elem[i-1],e) )
i++;
if(i<=L.length)
return i;
return 0;
}
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");
[ 本帖最后由 yangzexun24 于 2013-11-14 22:48 编辑 ]