阿里Java学习路线:阶段 1:Java语言基础-Java语言高级特性:第13章:比较器:课时55:二叉树结构简介
在进行链表结构开发的过程之中会发现所有的数据按照首尾相连的状态进行保存,那么当要进行某一个数据查询的时候(判断该数据是否存在),这种情况下它所面对的时间复杂度是“O(n)”,如果说现在它的数据量小(不超过30个)情况下,那么性能上是不会有太大差别的,而一旦保存的数据量很大,这个时候时间复杂度就会严重损耗程序的运行性能,那么现在对于数据的存储结构就必须发生改变,应该可以尽可能的减少检索次数为出发点进行设计,对于现在的数据结构而言,最好的性能就是“O(logn)”,所以现在要想实现它就可以利用二叉树的结构来完成。
如果要想实现一棵树结构的定义,那么就需要去考虑数据的存储形式,在二叉树的实现之中其基本的实现原理如下:取第一个数据为保存的根节点,小于等于根节点的数据要放在节点的左子树,而大于节点的数据要放在该节点的右子树。
如果要进行数据检索的话,此时就需要进行每个节点的判断,但是它的判断是区分左右的,所以不会是整个的结构都进行判断处理,那么它的时间复杂度就是O(logn)。
而对于二叉树而言,在进行数据获取的时候也有三种形式:前序遍历(根-左-右)、中序遍历(左-根-右)、后序遍历(左-右-根),那么现在只是以中序遍历为主,则以上的数据进行中序遍历的时候最终的结果:10、20、25、30、38、50、80、100,可以发现二叉树中的内容全部都属于排序的结果。