首页 > 代码库 > php 实现hash表
php 实现hash表
hash表又称散列表,通过把关键字key经过hash函数映射到hash表中某个位置获取记录。
存放记录的数组又称为hash表,映射函数称为hash函数
下面是php中实现hash表的方法
<?php/*hash表又称散列表,通过把关键字key经过hash函数映射到hash表中某个位置获取记录。 * * 存放记录的数组就是hash表 * */class hashtable{ private $buckets;//存储数据的数组 private $size = 10;//数组长度 public function __construct(){//hash表数组初始化 $this->buckets = new SplFixedArray($this->size); } /*=====hash函数=====*/ private function hashfun($key){ $strlen = strlen($key); $hashval = 0; for($i=0;$i<$strlen;$i++){ $hashval+=ord($key[$i]); } return $hashval%$this->size; } /*=====hash插入操作=====*/ public function insert($key,$val){ $index = $this->hashfun($key); if(isset($this->buckets[$index])){ $newnode = new hashnode($key, $val,$this->buckets[$index]);//新增值在头部 }else{ $newnode = new hashnode($key, $val); } $this->buckets[$index] = $newnode; } /*=====hash表取值操作=====*/ public function find($key){ $index = $this->hashfun($key); $current = $this->buckets[$index]; while(isset($current)){ if($current->key == $key){ return $current->value; } $current = $current->nextnode; } return NULL; }}//拉链法解决冲突class hashnode{ public $key; public $value; public $nextnode; public function __construct($key,$value,$nextnode=NULL){ $this->key = $key; $this->value = http://www.mamicode.com/$value;>
php 实现hash表
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。