又称单词查找树,是一种树形结构,是一种哈希树的变种。
典型应用:
1.统计
2.排序
3.保持大量字符串(不仅限于字符串)
经常被搜索引擎用于文本词频统计
优点:
利用字符串的公共前缀来减少查询时间,最大限度地减少无谓字符串的比较,查询效率比哈希树高
算法思路: 1.创建存储儿子节点的数组son[][26]
由于存储字母,最多只有26钟可能,故列为26
2.创建记录单词出现次数的数组cnt[]
每次字符串遍历到最后一个字母时,累加一次
#核心代码
import numpy as np
def main():
idx = 0 # 每一个字母都有唯一的索引号
son = np.zeros((10,26),dtype=int) #存放当前节点的子节点
cnt = [0]*1000 # 记录单词数
str_ = input("请输入字符串:")
insert(str_) # 插入单词操作
query(str_) #查询单词数量操作
def insert(str_):
global idx
global son
global cnt
p = 0 # 行标记
for item in str_:
u = ord(item)-ord('a')
if son[p][u] == 0: idx += 1
son[p][u] = idx
p = son[p][u]
cnt[p] += 1
def query(str_):
p = 0
for item in str_:
u = ord(item)-ord('a')
if son[p][u] == 0: return
p = son[p][u]
return cnt[p]

京公网安备 11010502036488号