为什么使用二叉树?
二叉树结合了另外两中数据结构的优点:一种是有序数组,另一种是链表。在树中查找数据项的速度和在有序数组中查找一样快,并且插入和删除数据项的速度也和链表一样。
在有序数组中插入或删除数据项太慢
当在有序数组中插入一个新数据项,就必须首先找到新数据项插入的位置,然后把所有比新数据项大的数据项向后移动一位,来给新数据项腾出空间。这样多次的移动很费时,平均来讲要移动数组中一半的数据项。
在链表中查找太慢
在链表中查找数据,必须从头开始,依次访问链表中的每个数据项,直到找到该数据项为止。即使是有序的链表还是必须从头开始依次访问数据项,因为链表不能直接访问某个数据项,必须通过数据间的链式引用才可以。
什么是二叉树?
树中的每个节点最多只能有两个子节点,这样的树就称为“二叉树”。二叉树每个节点的两个子节点称为“左子节点”和“右子节点”。
二叉树的遍历