3.2 二叉查找树
在本节中我们将学习一种能够将链表插入的灵活性和有序数组查找的高效性结合起来的符号表实现。具体来说,就是使用每个结点含有 两个 链接(链表中每个结点只含有一个链接)的二叉查找树来高效地实现符号表,这也是计算机科学中最重要的算法之一。
首先,我们需要定义一些术语。我们所使用的数据结构由 结点 组成,结点包含的 链接 可以为空( null)或者指向其他结点。在 二叉树 中,每个结点只能有一个父结点(只有一个例外,也就是 根结点,它没有父结点),而且每个结点都只有 左右 两个链接,分别指向自己的 左子结点 和 右子结点(如图 3.2.1 所示)。尽管链接指向的是结点,但我们可以将每个链接看做指向了另一棵二叉树,而这棵树的根结点就是被指向的结点。因此我们可以将二叉树定义为一个空链接,或者是一个有左右两个链接的结点,每个链接都指向一棵(独立的 )子二叉树。在 二叉查找树 中,每个结点还包含了一个键和一个值,键之间也有顺序之分以支持高效的查找。
