拉链法解决Hash节点冲突相关问题_PHP教程
程序员文章站
2022-05-02 16:38:32
...
php /* * hash::拉链法解决hash节点存储冲突问题 * ::2014-07-02 * ::Small_Kind */ class small_hash { private $size = 20;//hash节点大小 private $zone = null;//hash空间 //实例化函数,并设置一个初始hash节点大小,如果节点大小为null,则为默认节点大小 final public function __construct($size = null){ if(!is_null($size))$this->size = $size;// $this->zone = new SplFixedArray($this->size);// } //times33::计算key的hash值,并进行节点大小的取模工作 //::实现流程1、计算key长度2、循环长度,并将每个字符转换成asicc码后*33 final private function hash_times33($key){ if(empty($key))return false;//key==>empty $strlen = strlen($key); $hash_val = 0; for($i=0;$i$strlen