Java 集合框架之数据结构

Java 集合框架之数据结构

1. 数组

在这里插入图片描述
特点:
A. 内存地址连续,使用前必须先指定其长度;
B. 可以通过下标访问数组中的元素,下标访问效率高;
C. 增删操作时性能较差,需要重新开辟一块连续的内存地址,并对数组中的元素进行移动。

2. 链表

在这里插入图片描述
特点:
A. 灵活的空间要求,存储空间不要求连续;
B. 不支持下标访问(虽然在操作时可以传入下标进行访问,但本质上还是遍历访问),支持顺序遍历访问;
C. 增删操作时比数组的效率更高,只需要修改关联节点的头尾头尾引用即可。

3. 树

3.1 二叉树

在这里插入图片描述
特点:
A. 一个节点的左子节点只包含小于该节点的值;
B. 一个节点的右子节点只包含大于该节点的值;
C. 从左到右,顺序排列。

不平衡的二叉树:
在这里插入图片描述
不平衡的二叉树查询查询效率不高,通过去除顶端优势,从而达到树的平衡。

3.2 红黑树

红黑树(RBT)是一个自平衡的二叉树,树上的每个节点都遵循如下规则:
1. 每个节点要么是黑色,要么是红色;
2. 根节点是黑色;
3. 每个叶子节点(NIL)是黑色;
4. 每个红色节点的两个子节点一定都是黑色;
5. 任意一个节点到每个叶子节点的路径所包含的黑色节点数量相同。

红黑树有两大操作:
1. recolor(重新标记黑色或红色);
2. rotation(旋转,使树节点达到平衡)。

红黑树练习网站: http://algoanim.ide.sk/index.php?page=showanim&id=63
在这里插入图片描述
红黑树插入场景的思维导图
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值