标题:CurrentPos=(CurrentPos<<6)+*key;什么意思????
只看楼主
lt2201004068
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2012-2-23
结帖率:100%
已结贴  问题点数:10 回复次数:2 
CurrentPos=(CurrentPos<<6)+*key;什么意思????
long int Find(PtrToHash *hash,char *c) //查找在散列表中的位置
{
    char *key;
    long int CurrentPos,CollisionNum;
    key=c;
    for(CurrentPos=0;*key;++key)               //散列函数,计算散列值
        CurrentPos=(CurrentPos<<6)+*key;
    CurrentPos%=TabSize;                     //散列值
    CollisionNum=0;//如果当前单元被占用:单元内的元素与当前操作的名字不同,使用平方探测法解决冲突;与当前操作的名字相同,则直接返回在散列中的位置
    while((hash[CurrentPos].info)&&(strcmp(hash[CurrentPos].name,c)))
    {        //平方探测法
        CurrentPos+=2*(++CollisionNum)-1;
        if(CurrentPos>=TabSize)
            CurrentPos-=TabSize;
    }
    if((hash[CurrentPos].info)&&(strcmp(hash[CurrentPos].name,c)==0)) //元素已经在散列表里
        hashedx=1;
    else  //元素不在散列表里
        hashedx=0;
    return CurrentPos;//返回在散列表中的位置
}
搜索更多相关主题的帖子: long 元素 
2012-04-24 19:13
野比
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:24
帖 子:1627
专家分:516
注 册:2007-5-24
得分:10 
CurrentPos左移6位,key指针取值……

女侠,约吗?
2012-04-24 20:39
lt2201004068
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2012-2-23
得分:0 
回复 2楼 野比
地址左移6位???
2012-04-24 21:21



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-366464-1-1.html




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

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