数据结构

数据结构分类

数据结构包括:线性结构和非线性结构。
线性结构:
1、线性结构作为最常用的数据结构,其特点是数据元素之间存在一对一的线性关系。
2、线性结构有两种不同的存储结构,即顺序存储结构和链式存储结构。顺序存储的线性表称为顺序表,顺序表中存储的元素是连续的。
链式存储的线性表称为链表,链表中存储的元素不一定是连续的,元素节点中存放数据元素以及相邻元素的地址信息。
3、线性结构常见的有:数组、队列、链表和栈。
非线性结构:
包括:二维数组、多维数组、广义表、树结构和图结构。

hashcode和equals的区别和联系

1、如果两个对象hashcode相等,不一定equals。
2、如果两个对象hashcode不相等,一定不equals。
3、如果两个对象equals,hashcode一定相等。
4、如果两个对象不equals,hashcode有可能相等。

二叉搜索树

特征:
1、节点的左子树只包含小于当前根节点的数。
2、节点的右子树只包含大于当前根节点的数。
3、所有左子树和右子树自身必须也是二叉搜索树。
4、时间复杂度 logn。
缺点:
使用第一次添加的节点作为根节点,如果后面添加的值都大于根节点的值则会造成链表的情况。
在这里插入图片描述

红黑树

特征:
1、是平衡二叉树的一个子集。
2、每个节点不是红色就是黑色。
3、不能有两个连在一起的红色节点。
4、根节点都是黑色。
5、新增节点默认为红色。
6、每个红色节点的两个子节点都是黑色。

B-Tree

特征:
1、所有节点索引元素不重复。
2、节点大小默认16kb。
3、节点存储key是索引,value是整行数据。
4、节点中的索引从左到右递增排列。

B+Tree

特征:
1、叶子节点包含所有索引字段。
2、节点大小默认16kb。
3、非叶子节点不存储data,只存储冗余索引,可以放更多的索引。
4、叶子节点用指针连接,提高区间访问的性能。

为什么InnoDB表必须有主键,并且推荐使用整型的自增主键?

如果节点存储满了,自增的会在节点后面添加,如果不是则可能会在中间添加,导致节点分裂和树的平衡。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值