赞
踩
计算机中的树是一种数据结构,它是由n个有限节点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根在上而叶子在下。
(图来自王争《数据结构与算法之美》专栏)
(图来自王争《数据结构与算法之美》专栏)
经典的遍历二叉树的方法有三种:前序遍历、中序遍历、后序遍历。其中前、中、后序,表示的是节点与它的左右子树节点遍历打印的先后顺序。实际上,二叉树的前、中、后序遍历就是一个递归的过程。
二叉树遍历的时间复杂度为 O ( n ) O(n) O(n)
前面讨论的均是默认没有重复数据的情况。当二叉查找树中有重复数据时,有两种解决方案:
二叉查找树的形态各异,在最糟糕的情况下可以退化为链表,在最好的情况下是一个完全二叉树。如图:
(图来自王争《数据结构与算法之美》专栏)
所以,最坏情况下的查找、插入、删除时间复杂度均为O(n)
最好的情况下的查找、插入、删除时间复杂度经计算均为O(logn)
要保持最好情况,那么就要用到二叉查找树的特殊形态:平衡二叉查找树
所以,不能单看操作时间复杂度来判断数据结构的好坏,我们在开发过程中,需要结合具体的需求来选择使用哪一个。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。