哈希表查询速度快但是有风险,后来插入数据可能会覆盖原来的数据
二维数组可以防覆盖,但是数组的大小在创建的时候已经固定,因此同一列插入的数据有限
所以使用数组加链表的形式存储数据
链表降低时间复杂度:树
有序二叉树(左子树比父节点小,右子树比二叉树大)
让有序二叉树稳定:平衡二叉树
解决耗费计算机性能:多叉树 2-3-4树(从下往上构建)
(1)节点不是红色就是黑色
(2)在红黑树当中,根节点一定是黑色——>因为在转换过程中,二、三、四节点都是黑色节点开头;
(3)叶子节点一定是黑色的——>有默认的黑色叶子节点,省略没画出来;
(4)从根节点到所有叶子节点 所走的路径上,包含相同数量的黑色节点——>因为在二三四树构建红黑树的过程中,每一层的开头的节点都是黑色节点,黑色节点数目可以代表层数,二三四树的层数相同(等高);
(5)如果一个节点是红色的,那么他的子节点一定是黑色的——>黑色节点开头,红色节点一定是接新节点,所以红色节点一定接黑色节点——>绝对没有成对出现的红色节点——>最复杂的路线是黑红相间,最短的路径都是黑色——>最长的路径绝不会超过最短路径的二倍——>红黑树相对于有序二叉树的稳定性
红黑树解决了不稳定的问题,解决了资源消耗的问题,是内存最优二叉树