• 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;

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

  • 相关阅读:
    linux nohup
    并发编程-多进程模块介绍
    并发编程-多进程
    网络编程-粘包现象
    Typora快捷键Mac
    网络编程
    异常处理
    面向对象-元类介绍
    面向对象-内置方法
    面向对象-反射
  • 原文地址:https://www.cnblogs.com/-wang-cheng/p/4874262.html
Copyright © 2020-2023  润新知