IDEA-数据结构:栈、队列、数组、链表、红黑树

只是了解,需要单独学习数据结构这门课程。

数据机构:栈:先进后出,类似于子弹夹,最先进去的子弹最后出去
数据结构:队列:先进先出,类似于排队登机,最先进去的最先登机
数组查询快,增删慢
查询快:因为数组的地址是连续的,我们通过数组的首地址可以找到数组,通过数组的索引可以快速查找某一个元素。
增删慢:数组的长度是固定的,我们想要增加/删除一个元素,必须创建一个新数组,把源数组的数据复制过来。
数组Array是有序的元素序列,数组是在内存中开辟一段连续的空间,并在此空间存放元素,就像是一排出租屋,有100个房间,从001到100每个房间都有固定编号,通过编号就可以快速找到租房子的人。
int[] arr = new int[] {1,2,3,4};
要把数组中索引是3的元素删除,必须创建一个新的数组,长度是源数组的长度-1,把源数组的其他元素复制到新数组中,在新数组的地址赋值给变量arr,源数组会在内存中被销毁(垃圾回收)。
链表结构
**查询慢:**链表中地址不是连续的,每次查询元素,都必须从头开始查询
**增删快:**链表结构,增加/删除一个元素,对链表的整体结构没有影响,所以增删快
链表中的每一个元素称之为节点,一个节点包含了一个数据源(存储数组),两个指针域(存储地址)。
单向链表:链表中只有一条链子,不能保证元素的顺序(存储元素和取出元素的顺序有可能不一致)
双向链表:链表中有两条链子,有一条链子是专门记录元素的顺序,是一个有序的集合。

二叉树:分支不能超过两个
排序树/查找树:在二叉树的基础上,元素是有大小顺序的,左子树小,右子树大
平衡树:左孩子和右孩子相等
不平衡树:左孩子 != 右孩子
红黑树:接近于平衡树,查询的速度非常的快,查询叶子节点最大次数和最小次数不能超过2倍。
约束:
1.节点可以是红色的或者黑色的
2.根节点是黑色的
3.叶子节点(空节点)是黑色的
4.每个红色的节点的子节点都是黑色的
5.任何一个节点到其每一个叶子节点的所有路径上黑色节点数相同

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值