100分弱问

GR 2003-11-26 09:59:17
严老师的书上关于线性结构有这样的描述

LocateElem(L,e,compare())

其中L是线性结构这里用数组. e代表指定的某一数.compare是数据元素判定函数.
LocateElem成功.返回l中第一个与e满足关系的位序.失败返回0

如果按这样解释那么compare返回的是什么?



我发觉我只能用LocateElem写包括compare功能在内的一套函数.
int LocateElem(char* p,char e)
{for(int i = 0;i < Lenth(p); i++)
if ( e = p[i])
return i;
return 0;
}

按我的理解再写一个compare是否有多余的嫌疑.因为LocateElem的功能就是在一线性结构中判断一指定数.
compare的功能不是重合了么?

严老师这么写.应该有她的意义不过我水平差.看不出来..各位帮忙
...全文
61 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
GR 2003-11-26
  • 打赏
  • 举报
回复
FT.....我倒了.糊涂了多谢多谢
lishifeng 2003-11-26
  • 打赏
  • 举报
回复
首先,它应该是 if( e == p[i])...;
其次,建议写成 if( p[i] == e)...。
GR 2003-11-26
  • 打赏
  • 举报
回复
好多谢各位.


if ( e = p[i])
这句的错误在哪里.我水平差.

huangsui 2003-11-26
  • 打赏
  • 举报
回复
楼上说得对,1。如果你的链表元素不是基本类型,(比如字符串)你怎么比较它们呢?就得用compare函数。
2。查找并不是就是等于的关系
glacierrr 2003-11-26
  • 打赏
  • 举报
回复
compare()函数主要是为了通用性的关系而出现的
cai114 2003-11-26
  • 打赏
  • 举报
回复
compare是为了前面的实现不了时它就有用了
看一些代码时,要多思考
zhouqingyuan 2003-11-26
  • 打赏
  • 举报
回复
问题是,查找并不是就是等于的关系,你自己也说了是找到满足compare()关系的数啊,
可能大于,可能小于,还可能是其他很多关系啊,compare()函数就表示这种关系。
其实这样写带有一点类似泛型的意思在里面。
lishifeng 2003-11-26
  • 打赏
  • 举报
回复
很简单,如果你的链表元素不是基本类型,(比如字符串)你怎么比较它们呢?就得用compare函数。

另, if ( e = p[i]) 这样的错误别再犯了。
tianyxy 2003-11-26
  • 打赏
  • 举报
回复
搂主 打扰一下 怎么发贴呀 我找不到 发贴的连接 多多指教 谢谢!!!!
NoneSoVile 2003-11-26
  • 打赏
  • 举报
回复
这个很简单,你应该把compare当作抽象的condition
这样LocateElem就返回满足这个condition的元素的位置

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧