簡單HashTable實現

2022-03-01 23:14:15 字數 1021 閱讀 6992

紙上得來終覺淺,所以我還是手動敲了一遍.懂了一點.2333333333333

直接看**和注釋:

<?php

/** * store the hash data

*/class hashnode

}class hashtable

# hash enpty function

private function hashfunc($key));

} # return the remainder,serve as buckets key

return ($hashval % $this->size);

} # insert the value to the buckets

public function insert($key,$val)else

$this->buckets[$index] = $newnode;

} public function find($key)

# 否則查詢物件裡nextnode

$current = $current->nextnode;

} # 查詢失敗

return null;//find fail

// return $this->buckets[$index]; }}

$hash = new hashtable();

# hash表衝突

# 原因:不同的關鍵字通過hash函式計算出來的hash值相同.

# 解決:開放定位法和拉鍊法

# 拉鍊法:

# 將所有hash值相同的關鍵字節點鏈結在同乙個鍊錶中.

$hash->insert('test1','123456');

$hash->insert('test12','abcdef');

$hash->insert('test123','test123');

echo $hash->find('test1');

echo $hash->find('test12');

HashTable底層實現

hashtable是繼承與dictionary類,實現了map介面,hashtable的主體還是entry陣列 hashtable的預設容量大小為11,負載因子為0.75 hashtable的主要方法的原始碼實現邏輯,與hashmap中非常相似,有一點重大區別就是所有的操作都是通過synchroni...

Hashtable的簡單使用

在.netframework 中,hashtable 是system.collections 命名空間提供的乙個容器,用於處理和表現類似 key,value 的鍵值對,其中 key通常可用來快速查詢,同時 key是區分大小寫 value 用於儲存對應於 key的值。hashtable 中key va...

Hashtable的實現原理

從狹義上來看,hashtable 可以是一種具體型別名稱 system.collections.hashtable 從廣義上來看,它指的是一種資料結構,即雜湊表,牽涉了多種具體型別,像 hashmap,dictionary 等等,都屬於雜湊表的範疇。hashtable的具體型別為system.col...