数据结构与算法——第9章-查找表-键树查找法(9.11.1)

一 概述

1
2
3
1.键树
2.键树图示
3.注意

二 键树

1
2
3
4
5
6
键树,又称为数字查找树(根结点的子树个数 >= 2),同以往所学习的树不同的是,
键树的结点中存储的不是某个关键字,而是只含有组成关键字的单个符号。

如果关键字本身是字符串,则键树中的一个结点只包含有一个字符;
如果关键字本身是数字,则键树中的一个结点只包含一个数位。
每个关键字都是从键树的根结点到叶子结点中经过的所有结点中存储的组合。

三 键树图示

3.1 示例

1
2
3
4
5
例如,当使用键树表示查找表{CAI,CAO,CHEN,LI,LAN,ZHAO}时,
为了查找方便,首先对该查找表中关键字按照首字符进行分类(相同的在一起):
{{CAI,CAO,CHEN},{LI,LAN},{ZHAO}}
然后继续分割,按照第二个字符、第三个字符、...,最终得到的查找表为:
{{CAI,CAO},{CHEN},{LI,LAN},{ZHAO}}

3.2 图示

然后使用键树结构表示该查找表,如图 1 所示:

四 注意

1
2
3
注意:键树中叶子结点的特殊符号 $ 为结束符,表示字符串的结束。
使用键树表示查找表时,为了方便后期的查找和插入操作,
约定键树是有序树(兄弟结点之间自左至右有序),同时约定结束符 ‘$’ 小于任何字符。

五 参考

  • C语言中文网—键树查找法