第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

用PHP實(shí)現(xiàn)的HashTable及說明

標(biāo)簽:
PHP

用PHP实现的HashTable代码,其中需要说明的有两点:
1)代码中使用了 SplFixedArray ,这是一个更接近C语言的数组[Array],而且效率更高。使用之前需要开启SPL扩展,PHP5.3+默认开启。
2)代码中使用拉链法解决冲突,即将所有相同的Hash值的关键字节点链接在同一个链表中。

  1. <?php

  2. classHashNode{

  3. public $key;

  4. public $value;

  5. public $nextNode;

  6. publicfunction __construct($key, $value, $nextNode = NULL){

  7. $this->key = $key;

  8. $this->value = $value;

  9. $this->nextNode = $nextNode;

  10. }

  11. }

  12. //天涯PHP博客 http://blog.phpha.com

  13. classHashTable{

  14. private $buckets;

  15. private $size =10;

  16. publicfunction __construct(){

  17. $this->buckets =newSplFixedArray($this->size);

  18. }

  19. privatefunction hashfunc($key){

  20. $strlen = strlen($key);

  21. $hashval =0;

  22. for($i =0; $i < $strlen; $i++){

  23. $hashval += ord($key{$i});

  24. }

  25. return $hashval % $this->size;

  26. }

  27. publicfunction insert($key, $value){

  28. $index = $this->hashfunc($key);

  29. /* 新创建一个节点 */

  30. if(isset($this->buckets[$index])){

  31. $newNode =newHashNode($key, $value, $this->buckets[$index]);

  32. }else{

  33. $newNode =newHashNode($key, $value, NULL);

  34. }

  35. $this->buckets[$index]= $newNode;/* 保存新节点 */

  36. }

  37. publicfunction find($key){

  38. $index = $this->hashfunc($key);

  39. $current = $this->buckets[$index];

  40. while(isset($current)){/* 遍历当前链表 */

  41. if($current->key == $key){/* 比较当前节点的关键字 */

  42. return $current->value;/* 查找成功 */

  43. }

  44. $current = $current->nextNode;/* 比较下一个节点 */

  45. }

  46. return NULL;/* 查找失败 */

  47. }

  48. }

  49. //天涯PHP博客 http://blog.phpha.com

  50. //******* 下面是测试代码 *******

  51. $ht =newHashTable();

  52. $ht->insert('key1','value1');

  53. $ht->insert('key12','value12');

  54. echo $ht->find('key1');

  55. echo $ht->find('key12');

  56. ?>


點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消