经典数据结构之字母树
2008-08-22 23:09 JimLiu 阅读(2426) 评论(2) 编辑 收藏 举报字母树(TrieTree)是一种数据结构,可以实现O(s.length)的时间插入、删除、查找。
相比映射(map),字母树不存在哈希碰撞,实现相对简单。
“字母”其实是个泛指概念,字母树的索引可以是任何的串,只要组成串的元素是有限个。但如果组成串的元素太多,就不是很适合用字母树了,因为可能会造成大量空间浪费,但是时间性能还是很稳定。
以下是我自己实现的一个C#版本的泛型字母树,代码来自我做ACM题目时候用C++写的粗糙版本(只针对一个题目写的版本),没经过严格测试,各位朋友如果发现错误,还望不吝赐教。
/// <summary>
/// 泛型字母树,忽略大小写
/// </summary>
/// <typeparam name="T">泛型类型</typeparam>
public class TrieTree<T> {
private class TrieNode {
fields
constructors
properties
}
fields
private methods
public methods
indexer
}
/// 泛型字母树,忽略大小写
/// </summary>
/// <typeparam name="T">泛型类型</typeparam>
public class TrieTree<T> {
private class TrieNode {
fields
constructors
properties
}
fields
private methods
public methods
indexer
}