HASH表解决冲突的两种方式
摘要:
HASH表解决冲突有两种方式,一种是开放地址,一种是链表。后者的删除比较简单,就是从链表上删除一个数据。但是很多场合下,前者更适合应用。前者的优点是,CACHE命中率高,内存管理简单。但是从前者删除数据却很困难。如果简单地把待删除结点删除,则因为冲突,而被放到它后面的结点将会无法访问。可以设一个简单的删除标志,这样查询的时候,直接访问它的下一位,增加的时候,把它当空闲节点。但是,经过大量的增删之后,假设每次增删都是随机的,将会有大量被标志为删除的结点,这样会降低查找的速度。一种方案是,经过一定次数的删除后,重组HASH,把这些标志位去掉,这个过程也会比较麻烦,而且会导致,系统在一段时间内压力过 阅读全文
posted @ 2012-04-23 16:53 梦想Sky 阅读(467) 评论(0) 推荐(0) 编辑