读书人

数据结构顺序表有关问题 求解 !(C++

发布时间: 2012-10-13 11:38:17 作者: rapoo

数据结构顺序表问题 求解 !!!(C++)
int LocateElem(SqList L, ElemType e, Status(*compare)(ElemType, ElemType))
{ // 初始条件:顺序线性表L已存在,compare()是数据元素判定函数(满足为1,否则为0)
// 操作结果:返回L中第1个与e 满足关系compare()的数据元素的位序。
// 若这样的数据元素不存在,则返回值为0。算法2.6
ElemType *p;
int i=1; // i的初值为第1个元素的位序
p=L.elem; // p的初值为第1个元素的存储位置
while(i<=L.length && !(*compare)(*p++,e))
++i;
if(i<=L.length)
return i;
else
return 0;
}

void ListUnion(SqList &La,SqList &Lb)
{
int La_len, Lb_len,i;
ElemType e;
La_len=ListLength(La);
Lb_len=ListLength(Lb);
for(i=1;i<=Lb_len;i++)
{
GetElem(Lb, i, e);
if (!LocateElem(La,e,equal))
ListInsert(La,++La_len,e);
}
}

在ListUnoin函数中调用了LocateElem函数,编译时发现错误指向
if (!LocateElem(La,e,equal))
说是equal未定义
请问大虾们这个应该怎么解决?

[解决办法]
那就定义equal变量并初始化它先。
[解决办法]
如果Status的定义是这样的话
typedef int Status;
那你就定义一个equal全局函数。

C/C++ code
Status equal( ElemType a, ElemType b ){    if( a==b )         return 1;    else         return 0;} 

读书人网 >C++

热点推荐