二叉树进阶
二叉搜索树
树的本身和子树都满足左孩子比它小,右孩子比他大。
使用价值:
- 搜索,最多查找树的高度次
- 排序,中序遍历是有序的
bool insert(const K& key);
void _InOrder(Node* root);
void InOrder();
bool Find(const K& key);
bool Erase(const K& key);
二叉搜索树删除
搜索使用场景:
- key模型 判断在不在?
- key:value模型 通过key找对应的value key是不能修改的可以修改value
搜索效率: 如果插入的数据是有序的或者接近有序? 搜索树的效率最坏是O(N)
解决:平衡树AVLTree 红黑树
练习: