树有哪些?[面试5.0]
普通二叉树
平衡二叉树
完全二叉树
二叉搜索树
四叉树
多叉树
红黑树
自平衡二叉搜索数
树的遍历方式有哪几种?[面试5.0]
前序:先到根节点,再到左节点,最后到右节点
中序:先到左子树,再到根节点,最后到右子树
后序:先访问左节点,再访问右节点,最后才访问根节点
层序:层序遍历就是按照树的层次由上到下的进行遍历,每一层要求访问的顺序为从左到右
注:记忆方法,所有的顺序都是按照从左到右,前中后指的是根节点的前中后,层序一层一层的
二叉树和红黑树有什么区别?[面试5.0]
二叉树:
优点: 查找减半
缺点: 单链查找深度太深,每一次查找下一层级都会有IO消耗
红黑树:
红黑树是平衡的二叉树(它依靠节点的红黑状态来控制平衡)
其中红黑树的特点:
1.每个节点只有两种状态要么红色,要么黑色而且根节点只能是黑色
2.若节点是红色,那么子节点只能是黑色
3.从根节点到子节点的每条路径黑色节点数量是相等的
优点: 相比二叉树好一点,当节点为3时,会自动平衡分解节点
缺点: 虽然会自动平衡,但数据量很大时节点高度也会增大