| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1946 人关注过本帖
标题:关于严蔚敏版数据结构教材中顺序结构线性表Locate函数的使用问题
只看楼主 加入收藏
yangzexun24
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-12-15
结帖率:50%
收藏
 问题点数:0 回复次数:23 
关于严蔚敏版数据结构教材中顺序结构线性表Locate函数的使用问题
晕 刚才没发表出来重新发表一次
搜索更多相关主题的帖子: 线性表 
2013-11-14 21:57
yangzexun24
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-12-15
收藏
得分:0 
--------------------------------------------------------------------------------------
函数定义是这样的 按照严蔚敏教材中函数定义的要求
书中没有详细代码 自己编的 查过网上的 跟我的也差不多
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 编辑 ]
2013-11-14 21:57
yangzexun24
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-12-15
收藏
得分:0 
静待高手出现
我想函数定义是没有问题的
但是不知道怎样在main中调用
网上搜不到 书上的这种 LocateElem(L,3,(*compare)()) compare函数不搭配参数的用法是在定义另一个create函数中提到的
2013-11-14 22:00
yangzexun24
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-12-15
收藏
得分:0 
来人吧 等下都睡着了
2013-11-14 22:03
yangzexun24
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-12-15
收藏
得分:0 
来人吧 等下都睡着了
2013-11-14 22:05
yangzexun24
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-12-15
收藏
得分:0 
来人吧 求来人
2013-11-14 22:14
yangzexun24
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-12-15
收藏
得分:0 
a
2013-11-14 22:48
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:0 
是C语言描述的那一版吗?

字太多,没怎么看,这是在第几页的?

如果可以,请尽量给完整的代码。方便运行一下看的话会比较好排错。


学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2013-11-15 01:52
yangzexun24
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-12-15
收藏
得分:0 
回复 8楼 蚕头燕尾
我想locate函数定义是没有问题的
我试过改写这个函数,只使用前两个参数 然后在方法体内调用compare函数 是可以成功实现的
现在的问题是,我不知道如何在main函数里使用locate函数
书上的是 locateelem(L,e,(*compare)());
但是运行的话提示compare函数不能搭配0个参数 但是正确调用应该又是这个语句
如果compare里面输入参数的话,就失去了将compare函数作为参数的意义了
2013-11-15 19:10
yangzexun24
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2010-12-15
收藏
得分:0 
回复 8楼 蚕头燕尾
我在想是不是compare函数定义的不对  因为书上没有
或者说需要在main函数里或者外面输入什么语句
2013-11-15 19:12
快速回复:关于严蔚敏版数据结构教材中顺序结构线性表Locate函数的使用问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016207 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved