红黑树和set与map
区分递增和严格递增(在写代码时不一样,数学中一般递增指的是严格递增)
创建二叉搜索树不是为了排序,而是为了快速插入、删除以及查找元素
平衡二叉树的查找、插入以及删除操作基本上与二叉搜索树一致,但是需要处理操作之后的"失衡"
重点需要掌握两种处理失衡的操作:
1.左旋
2.右旋
根节点未说明时,一般指的是那一个
左右孩子针对的是那个最小不平衡子树的根节点
LL型:右旋(以左孩子为轴)
RR型:左旋(以右孩子为轴)
LR型:左旋左孩子,然后右旋
(左旋左孩子是以左孩子的右孩子为轴)
RR型:右旋右孩子,然后左旋
(右旋右孩子是以右孩子的左孩子为轴)
规律:左旋则轴为右孩子
右旋则轴为左孩子
场景一:判断一堆字符串中,某一个字符是否出现过--用set
场景二:找出一堆字符串中,某一个字符串出现的次数--用map
INF这个变量名一般表示无穷大的意思
在C++的set中,数据的排列顺序是默认从小到大排的,而不是插入的顺序