定义
红黑树是一种自平衡二叉查找树,它可以在 O($\log(n)$ ) 时间内完成查找、插入和删除,这里的n是树中元素的数目。
红黑树是每个节点都带有颜色属性的二叉查找树,颜色为红色或黑色。在二叉查找树强制一般要求以外,对于任何有效的红黑树我们增加了如下的额外要求:
- 节点是红色或黑色。
- 根节点是黑色。
矩阵是一个具有m行 x n列的数表,共包含m x n个数(元素),每个元素处在确定行和列的交点位置上,都与一对行号和列号唯一对应。
当一个矩阵中的行数和列数相同时,即m = n时则称为n阶矩阵或方阵。
稀疏矩阵(SparseMatrix)是矩阵中的一种特殊情况,其非零元素的个数小于零元素的个数。
对于稀疏矩阵中的每个非零元素,可用它所在的行号、列号以及元素这三元组(i,j,aij)来表示。若把所有的三元组按照行号为主序(即主关键字)、
列号为辅序(次关键字)进行排序,就构成一个表示稀疏矩阵的三元组线性表。
((1,1,3),(1,4,5),(2,3,-2),(3,1,1),(3,3,4),(3,5,6),(5,3,-1))
平衡二叉树也叫自平衡二叉搜索树(Self-Balancing Binary Search Tree),所以其本质也是一颗二叉搜索树。在AVL树中,任一节点对应的两棵子树的最大高度差为1,因此它也被称为高度平衡树。节点的平衡因子是它的左子树的高度减去它的右子树的高度(有时相反)。带有平衡因子1、0或 -1的节点被认为是平衡的。带有平衡因子 -2或2的节点被认为是不平衡的,并需要重新平衡这个树(旋转操作)。
最小失衡子树:在新插入的结点向上查找,以第一个平衡因子的绝对值超过1的结点为根的子树称为最小不平衡子树。也就是说,一棵失衡的树,是有可能有多棵子树同时失衡的。而这个时候,我们只要调整最小的不平衡子树,就能够将不平衡的树调整为平衡的树。Ï
平衡二叉树的失衡调整主要是通过旋转最小失衡子树来实现的。根据旋转的方向有两种处理方式,左旋与右旋。
旋转的目的就是减少高度,通过降低整棵树的高度来平衡。哪边的树高,就把那边的树向上旋转。
左旋