java数据结构

一、数据结构

数据结构特点三大方面:存储空间、访问效率、增删效率

1、数组

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wXnArUHp-1634560167528)(C:\Users\76532\Desktop\面试复习\java核心\数组.png)]
特点:

1、内存地址连续,使用之前必须要指定好数组的长度

2、可以通过下标访问的方式访问成员,查找效率高

3、数组的增删消耗性能

2、链表

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lcFlCU5Q-1634560167531)(C:\Users\76532\Desktop\面试复习\java核心\链表.png)]
特点:

1、灵活的空间要求、存储空间不需要连续

2、不可以通过下标访问,只能通过遍历进行检索

3、对于增删效率会更高,只和操作的前后节点有关

3、树

二叉树

增删效率和访问效率都鉴于数组和链表之间

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jXykeVmN-1634560167533)(C:\Users\76532\Desktop\面试复习\java核心\二叉树.png)]
特点:

1、该节点的左子树节点比该节点小

2、该节点的右子树节点比该节点大

3、左右子树必须是二叉树

4、顺序队列:从左到右,一层一层

不平衡的二叉树:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5pHp81t2-1634560167535)(E:\AppData\Roaming\Typora\typora-user-images\image-20210714152401921.png)]
特点:

1、查询效率不高

可以通过去除顶端优势去解决,红黑树就是去除二叉查找数顶端优势的解决方案,从而达到树的平衡

红黑树

红黑树 Red-Black Tree 是一个自平衡的二叉查找数

树上每个节点遵循的规则:

1、每个节点要么是红色的,要么是黑色的

2、根节点一定是黑色的

3、每个叶子节点【NIL】都是黑色的

4、任意节点到每个叶子节点的路径的黑色节点数量相同

5、红色节点不能做父子节点

红黑树能自平衡,它靠的是什么?三种操作:左旋、右旋、变色

左旋操作:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aG8m1Kum-1634560167537)(C:\Users\76532\Desktop\面试复习\java核心\左旋.png)]
右旋操作:
[外链图片转存失![在这里插入图片描述](https://img-blog.csdnimg.cn/229794295c024407930836bd03729b35.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAR29pbmdfbWFu,size_20,color_FFFFFF,t_70,g_se,x_16)败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MMn3xuUl-1634560167538)(C:\Users\76532\Desktop\面试复习\java核心\右旋.png)]

变色:结点的颜色由红变黑或由黑变红。

插入处理的场景
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rQ1mzNma-1634560167539)(E:\咕泡学习\java核心课程笔记\红黑树的插入场景.png)]
记住主要的三种情况:①红黑树为空②插入节点的父节点为黑色③插入节点父节点为红,其中如果叔叔节点也为红,可直接变色解决,如果为黑,则看情况进行平衡调整。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值