【算法面试通关40讲】17 - 理论讲解:树&二叉树&二叉搜索树

Tree, Binary Tree, Binary Search Tree

树的结构其实跟链表很相似,区别就是,树的一个节点可以指向多个其他节点,下图是一个二叉树实例
总结:LinkedList就是特殊化的Tree

Graph

图和树的区别在于,树是没有环的图
总结:Tree就是特殊化的Graph

Binary Search Tree

树的重要实现是二叉搜索树

时间复杂度

访问,搜索,插入,删除的平均时间复杂度都是O(logN)

二叉搜索树的退化

退化概念:二叉搜索树只有一边的子树,所有子树都只有左子树或者都只有右子树,这时候树就退化成为一条链表,时间复杂度降至O(N)

解决办法:使用平衡二叉树,如红黑树,Splay Tree,AVL Tree,KD Tree

Java和C++标准库中的二叉搜索树都是用红黑树来实现的

红黑树的简介:https://blog.csdn.net/v_JULY_v/article/details/6105630
有兴趣的朋友可以看下

全部评论

相关推荐

12-15 11:27
门头沟学院 Java
哇哇的菜鸡oc:所有人不要理会,就好了,后面他就知道怎么回事了,只能说有的时候市场都是被宰的人搞坏的
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务