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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值