【算法面试通关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
有兴趣的朋友可以看下

全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
05-01 13:13
ecece:这么明目张胆虚报就业率啊
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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