在Rust中实现二叉树
二叉树算得上是数据结构中的一种基础结构,在二叉树的基本操作中集中了大量数据结构设计中的常用操作。但是由于Rust语言特性的设计,在其他寓言中十分方便就可以实现的功能,在Rust中就需要绕一段路,二叉树的实现就是这样的一个典型例子。
二叉树算得上是数据结构中的一种基础结构,在二叉树的基本操作中集中了大量数据结构设计中的常用操作。但是由于Rust语言特性的设计,在其他寓言中十分方便就可以实现的功能,在Rust中就需要绕一段路,二叉树的实现就是这样的一个典型例子。
普通的二叉查找树(BST)虽然已经实现了对于节点的快速查找,但是如果树的拓扑结构没有设计正确,例如将一个有序序列存入BST中,就会使BST的二分查找能力损失,也就是常说的失去了平衡。为了保证BST的查找能力,在BST形成过程中进行平衡调整,就形成了平衡二叉查找树,简称平衡二叉树(AVL-tree)。
二叉查找树(Binary Search Tree,BST)是一种特殊的二叉树,BST通过定义节点的左孩子和右孩子的约定关系,提升了二叉树节点的搜索效率。
二叉树(Binary Tree)是指树中的所有节点的度都不大于2的树,也就是说,二叉树中的所有节点最多只有2个子节点。二叉树的每个节点有左树和右树之分,而节点的左树和右树同样也是二叉树。
时间复杂度是我们衡量和筛选算法的一个常用考量维度,如何理解并使用它,是我们日常工作学习中常常会用到的,但是只要一段时间不用它是会很快被忘记的。所以这里把时间复杂度的概念简要记录一下,方便使用的时候能够快速恢复记忆。