二叉树 是一种典型的树树状结构。从名称就可得知,二叉树是每个节点最多有两个子树的树结构,通常子树被称作“左子树”和“右子树”。本文就介绍一下二叉树的遍历,拓展应用,以及堆与二叉树的关系。


{value, left?, right?}
测试:
输出:
Binary Search Tree) 特点value <= root valuevalue >= root value数组: 查找快 O(1),增删慢 O(n)
链表: 查找慢 O(n),增删快 O(1)
二叉搜索树 BST: 查找快 O(logn),增删快
如图:

思路:二叉搜索树在中序遍历后,可返回一个有序递增的数组,所以求一个二叉搜索树的第 K 小值就变得很简单,代码如下:

特点:


特点:
Heap) 是完全二叉树,比 BST 结构灵活父节点 <= 子节点父节点 >= 子节点结构:

堆 vs BST
O(logn) 级别,即树的高度(层级)欢迎访问:天问博客