二叉查找树

二叉查找树,二叉查找树是指在链表的基础上往数组中追加元素时,考虑到数据的大小关系,将其分成左右两个方向的表现形式。例如,假设我们事先把50这个值保存到了数组中。那么,如果接下来的值比先前保存的数值大的话,就要将其放到右边,反之如果小的话就放在左边。但实际的内存并不会分成两个方向,这是在程序逻辑上实现的(图4-15)。

二叉查找树
图4-15 二叉查找树的模型(将树颠倒后的形状)

为了实现二叉查找树,怎么处理比较好呢?其实数组的每个元素中只要有数据的值和两个索引信息就可以了。图4-16向我们展示了如何用数组来实现图4-15中的二叉查找树。二叉查找树是由链表构造发展而来的表现形式,因此在追加或删除元素方面也同样是有效的。

二叉查找树
图4-16 使用数组来实现二叉查找树

使用二叉查找树的便利之处在于可以使数据的搜索等更有效率。在使用一般的数组时,必须从数组的开头按照索引顺序来查找目标数据。而使用二叉查找树时,当目标数据比现在读出来的数据小时就可以转到左侧,反之目标数据较大时即可转到链表的右侧,这样就加快了找到目标数据的速度。

只要在程序开发中多花一些心思,我们就可以熟练地使用内存、实现栈处理、链表处理、二叉查找树处理等,这一点想必大家都清楚了。不过,大家还必须理解为什么要进行这些处理。另外,请大家牢记数组是进行这些处理的基础。

下一章,我们将会介绍磁盘。和内存一样,磁盘也是用于存储数据的。磁盘虽然在物理方面只能以扇区为单位进行读写,但通过在程序中多花一些心思,磁盘也可以以各种形态来使用。此外,我们也会对用磁盘替代内存来使用的虚拟内存进行说明。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!