首页 > Web开发 > 详细

php实现hashTable

时间:2019-12-24 22:49:14      阅读:77      评论:0      收藏:0      [点我收藏+]

Hash表作为最重要的数据结构之一,也叫做散列表。使用PHP实现Hash表的功能。PHP可以模拟实现Hash表的增删改查。通过对key的映射到数组中的一个位置来访问。映射函数叫做Hash函数,存放记录的数组称为Hash表。

Hash函数把任意长度的和类型的key转换成固定长度输出。不同的key可能拥有相同的hash。
Hash表的时间复杂度为O(1)

class HashTable{
  	private $arr = array();
  	private $size=10;
  	public function __construct(){
  		$this->arr = new  SplFixedArray($this->size);
  	}
  	public function SimpleHash($key){
  		$len = strlen($key);
  		$ascTotal=0;
  		for($i=0;$i<$len;$i++){
  			$ascTotal+=ord($key[$i]);
  		}
  		return $ascTotal%$this->size;
  	}
  	//添加
  	public function set($key,$value){
  		$hash = $this->SimpleHash($key);
  		$this->arr[$hash]=$value;
  		return true;
  	}
  	//获取
  	public function get($key){
  		$hash = $this->SimpleHash($key);
  		return $this->arr[$hash];
  	}
  	//获取列表
  	public function getList(){
  		print_r($this->arr);
  	}
  	//修改hash大小
  	public function editSize($size){
  		$this->size = $size;
  		$this->arr->setSize($size);
  	}
  } 
  $objtable = new HashTable();
  $objtable->set("test",40);
  $objtable->set(‘a‘,10);
  $objtable->editSize(40);

  

php实现hashTable

原文:https://www.cnblogs.com/zh718594493/p/12093830.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!