1.1 2-3查找树
一棵2-3查找树或为一个空树,或由以下节点组成:
2-节点,含有一个键(及其对应的值)和两条链接,左链接指向的2-3树中的键都小于该节点,右链接指向2-3树中的键都大于该节点。
3-节点,含有两个键(及其对应的值)和三条链接,左链接指向2-3树中的键都小于该节点,中链接指向的键都在两键之间,右链接指向的键都大于该节点。
一棵完美平衡的二叉查找树中的所有空链接到该节点的距离都应该是相同的。
1.1.1 查找
与二叉树类似。
1.1.2 向2-节点中插入
先进行一次未命中的查找,如果未命中的查找结束于2-节点,只要把它变成一个3-节点,将插入的键保存其中即可。如果结束与一个3-节点,则比较复杂,下面再讨论。
1.1.3 向仅有3-节点中插入
如上所述,它最后走到一个3-节点。这个节点中有两个键,所以在此节点中已经没有可插入新建的空间了。为了将新建插入,先临时将新键存入该节点中,使之成为一个4-节点。它很自然地扩展了以前的节点并含有3个键和4条链接。而且很容易地转换成由3个2-节点组成的2-3树,其中一个点(根)含有中键,一个节点含有3个键中的最小者(与根节点的左链接相连),一个节点含有3个键中的最大者(与跟节点的右链接相连)。这棵树既是一棵含有3个结点的二叉查找树,同时也是一棵完美平衡的二叉树,因为其中所有的空链接到根节点的距离都相等。插入前树的高端为0,插入后的树的高度为1。这个例子说明了2-3树是如何生长的。