TCPL学习毕节:第六章hash表

对于P126的哈希表构成:

 1 struct nlist *install(char *name, char *defn)  
 2 {  
 3     struct nlist *np;  
 4     unsigned hashval;  
 5     if ((np = lookup(name)) == NULL)   
 6     {  
 7         np = (struct nlist *) malloc(sizeof(*np));  
 8         if (np == NULL || (np->name = strdup(name)) == NULL)  
 9             return NULL;  
10         hashval = hash(name);  
11         np->next = hashtab[hashval];  
12         hashtab[hashval] = np;  
13     } else   
14         free((void *) np->defn);   
15     if ((np->defn = strdup(defn)) == NULL)  
16         return NULL;  
17     return np;  
18 }  

这两句应该注意一下:

1 np->next = hashtab[hashval];
2 hashtab[hashval] = np;

这两句的作用是将后插入的数据放在以前插入的数据的前面,让其下次访问的时候可以先访问到,具体的含义未知,应该是为了使得关联性的数据查找起来更加方便之用。

转载于:https://www.cnblogs.com/-wang-cheng/p/4874262.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值