标题:哈希表查找过程中的插入
取消只看楼主
掷地有声
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-5-11
结帖率:0
已结贴  问题点数:20 回复次数:1 
哈希表查找过程中的插入
彩色字体部分,不知道要怎么赋值了。
void HashSearch()
{
    char name[10]={0};
    char *q;
    int s=0,sum=1,adr,k,j;
    printf("please input the name for search:");
    scanf("%s",name);
    q=name;
    for(j=0;*(q+j)!='\0';j++)
    {
        s+=*(q+j);
        adr=s%P;
    }
    if(Hashlist[adr].key==s&&!strcmp(Hashlist[adr].name,name))
    {
        printf("adr:%d name:%s  key:%d m:%d\n",adr,Hashlist[adr].name,Hashlist[adr].key,Hashlist[adr].m);
        printf("found!delete or not?(0 is not,1 denoted delete)\n");
        scanf("%d",&k);
        if(k==1)
        {
            Hashlist[adr].name='\0';
            Hashlist[adr].key=0;
            Hashlist[adr].m=0;
        }
    }
    else if(Hashlist[adr].key==0)
    {
        printf("no found!will inserting\n");
        Hashlist[adr].name=q;
        Hashlist[adr].key=s;
        Hashlist[adr].m=1;
        printf("have inserted!\n");
    }
    else
    {
        while(1)
        {
            adr=(adr+Q)%P;
            sum=sum+1;
            if(Hashlist[adr].key==0)
            {
                printf("no found!\n");
                if(sum<10)
                {
                   Hashlist[adr].name=q;
                    Hashlist[adr].key=s;
                    Hashlist[adr].m=1;
                    printf("have inserted!\n");
                    break;
                }
            }
             if(Hashlist[adr].key==s&&!strcmp(Hashlist[adr].name,name))
             {
                 printf("adr:%d name:%s  key:%d m:%d\n",adr,Hashlist[adr].name,Hashlist[adr].key,Hashlist[adr].m);
                printf("found!delete or not?(0 is not,1 denoted delete)\n");
                 scanf("%d",&k);
                if(k==1)
                {
                    Hashlist[adr].name='\0';
                    Hashlist[adr].key=0;
                    Hashlist[adr].m=0;
                }
                printf("have deleted!\n");
                break;
             }
        }
    }
}
搜索更多相关主题的帖子: 哈希 
2010-05-12 13:54
掷地有声
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2010-5-11
得分:0 
回复 2楼 liyang0430
谢谢,呵呵!脑袋太混乱了,看着代码烦!
2010-05-12 16:00



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




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

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