60、PHP 实现 单词查找树算法

题目: PHP 实现 单词查找树算法

描述:

php 复制代码
class TrieST
{
	private $_root=null;

    /**
     *查找单词$key
     * 
     */
	public function search(string $key){
		 $node=$this->_search($this->_root,$key,0);
		 if(is_null($node)){
		 	return null;
		 }
		 return $node->getVal();
	}

	private function _search($node,string $key,int $keyIndex){
		if(is_null($node)){
			return null;
		}
		if(strlen($key)==$keyIndex){
			return $node;
		}
		$nextNodePos=$key[$keyIndex];
		return $this->_search($node->getNextNode($nextNodePos),$key,++$keyIndex);
	}

    /**
     * 添加单词
     * @param string key 要添加的单词
     */
	public function put(string $key,$value){
		if(is_null($this->_root)){
			$this->_root=$this->_put($this->_root,$key,$value,0);
		}
		$this->_put($this->_root,$key,$value,0);
	}

	private function _put($node,string $key,$value,int $keyIndex){
		if(is_null($node)){
			$node=new Node();
		}
		if(strlen($key)==$keyIndex){
			$node->setVal($value);
			return $node;
		}
        
        $nextNodePos=$key[$keyIndex];
        $nextNode=$this->_put($node->getNextNode($nextNodePos),$key,$value,++$keyIndex);
		$node->setNextNode($nextNodePos,$nextNode);
		return $node;
	}

	public function keyWithPrefix(string $pre){

	}
}
相关推荐
爱笑的眼睛111 分钟前
从零构建与深度优化:PyTorch训练循环的工程化实践
java·人工智能·python·ai
小白程序员成长日记4 分钟前
2025.12.09 力扣每日一题
数据结构·算法·leetcode
Bear on Toilet7 分钟前
18 . 杨辉三角
算法·leetcode·职场和发展
狂奔小菜鸡14 分钟前
Day27 | Java集合框架之List接口详解
java·后端·java ee
小川_wenxun14 分钟前
快速选择算法
算法
a程序小傲15 分钟前
美团二面:KAFKA能保证顺序读顺序写吗?
java·分布式·后端·kafka
墨笔之风15 分钟前
数据库文档生成工具(PostgreSQL 适配版 - Java 8 兼容)
java·数据库·postgresql
a努力。15 分钟前
网易Java面试被问:fail-safe和fail-fast
java·windows·后端·面试·架构
酌沧17 分钟前
大模型量化技术全解析
人工智能·python·算法
计算机毕设指导619 分钟前
基于微信小程序的宠物走失信息管理系统【源码文末联系】
java·spring boot·mysql·微信小程序·小程序·tomcat·宠物