代码改变世界

随笔档案-2011年12月29日

Trie的应用及拼写检查器的优化

2011-12-29 22:11 by java线程例子, 222 阅读, 收藏,
摘要: 之前实现的拼写检查器,是用Hash表来保存语言模型(Language Model)。每个单词插入到Hash表时都要先计算一个Hashcode值来作为Id。因此插入一个单词到Hash表(不冲突的情况下)与查询一个单词的效率都是O(len),其中len是单词的长度。我们也可以用一种叫Trie的树形结构来保存语言模型。Trie的结构非常简单,举个简单的例子,对于下面这些单词:an, ant, all, allot, alloy, aloe, are, ate, be我们可以构建出这样一个Trie树,每条支路都代表一个字母,由根节点出发到叶子节点所经过的路径上的字母就组成一个单词。其中,根节点不包含字 阅读全文

C++复习之类继承的控制访问

2011-12-29 15:42 by java线程例子, 253 阅读, 收藏,
摘要: 一、C++的继承1.类的继承是面向对象的程序设计中提供的一种机制,它允许程序员在保存原有的类的特性的基础上,进行更具体、更详细的类的定义。(可以与现实联系:父母与孩子)2.在C++类继承中,一个派生类可以从一个基类派生,也可以从多个基类派生。从一个基类派生的继承称为单继承。从多个基类派生的继承称为多继承。3.C++中类的继承方式有public、protected、private三种。4.注意:如果不显示的给出继承方式关键字,系统的默认值就认为是私有继承(private)。二、访问控制以下内容主要介绍“访问控制”。这里的“访问”,来自俩个方面:1.派生类新增成员访问从基类的继承的成员;2.派生类 阅读全文