编程高级主题探索
1. 二叉树相关知识
- 二叉树结构与数据顺序 :二叉树的形态依赖于数据的插入顺序。若“coulomb”是列表首个单词,树将无左子节点,严重右倾;若“yokel”是首个输入单词,树的形态也会不同。随机数据且起始值接近平均值时,能生成平衡二叉树;若单词按字母顺序插入,二叉树会类似链表。
- 二叉树搜索
- 搜索过程 :以在树中查找“tortuous”为例,从根节点“opulent”开始,因“tortuous”大于“opulent”,沿右指针到“salubrious”,再按此算法最终找到“tortuous”。
- 性能优势 :相比链表搜索,二叉树搜索通常快很多。链表需逐个检查节点,平均要检查一半节点;而平衡二叉树每次检查节点可将搜索空间减半,最大搜索节点数约为$log_2n$($n$为树中节点数),平均搜索$log_2n/2$个节点。例如,100个节点的链表平均检查50个节点,而二叉树平均检查3.32个节点;1000个节点时,链表平均检查500个节点,二叉树约检查5个节点。
- 二叉树中的递归
- 递归原理 :二叉树和递归相辅相成。递归搜索树时,递归函数需访问当前节点,并对其两个子节点调用自身,子节点再对自身和它们的子节点做同样操作,遇到终端节点时递归停止。
- 代码示例
超级会员免费看
订阅专栏 解锁全文
2577

被折叠的 条评论
为什么被折叠?



