| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3817 人关注过本帖
标题:请教数据结构中一个LocateElem的函数
取消只看楼主 加入收藏
kingonlive
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-2-13
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:2 
请教数据结构中一个LocateElem的函数
int LocateElem_Sq(SqList L, ElemType e,
        Status (*compare)(ElemType, ElemType)) {  // 算法2.6
  // 在顺序线性表L中查找第1个值与e满足compare()的元素的位序。
  // 若找到,则返回其在L中的位序,否则返回0。
  int i;
  ElemType *p;
  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;
} // LocateElem_Sq
  
 这是书上的示例,原原本本没改过的。
我不理解的是这个地方Status (*compare)(ElemType, ElemType))   
请问这里应该怎么理解,我现在认为的是,这里是一个自定义的函数,但是如果自定义的话,那该如何定义?
我希望实现这个,希望前辈指点.
搜索更多相关主题的帖子: 线性表 元素 
2011-02-22 23:37
kingonlive
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-2-13
收藏
得分:0 
#include <stdio.h>
#include <stdlib.h>

#define MAX 10

typedef int ElemType;
typedef int Status;

typedef struct node
{
    ElemType elem[MAX];
    int length;
}SqList;

SqList * init( SqList * L )
{
    L = (SqList*) malloc (sizeof(SqList));
    if( !L )
    {
        exit(0);
    }
    L->length = 0;

    int i = 1;
    while( i!=5 )
    {//elem 从第一号位置开始存储
        L->length++;
        L->elem[L->length] = i;
        ++i;
    }
    return L;
}

void show( SqList L )
{
    for( int i=1; i<=L.length; ++i )
    {
        printf( "%d ", L.elem[i] );
    }
    printf("\n");
}

Status compare( ElemType a, ElemType b )
{
    if( a == b )
    {
        return 1;
    }
    else
    {
        return 0;
    }
}

int LocateElem_Sq( SqList L, ElemType e, Status(*compare)(ElemType, ElemType))
{
    int i;
    ElemType *p;
    i = 1;
    p = L.elem+1;
    while( i<=L.length && !(*compare)(*p++, e))
    {
        ++i;
    }
    if( i<=L.length)
    {
        return i;
    }
    else
    {
        return 0;
    }
}

int main()
{
    SqList *L = NULL;
    L = init( L );
    show( *L );
    printf("%d \n", LocateElem_Sq( *L, 3, compare) );

    return 0;
}


非常感谢,你可以解释下绿色字体的部分吗?
2011-02-23 23:20
kingonlive
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-2-13
收藏
得分:0 
版主很厉害,他写的例子我看懂了.谢谢5楼耐心的解释
2011-02-24 18:58
快速回复:请教数据结构中一个LocateElem的函数
数据加载中...
 
   



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

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