【Java笔记】java常见数据结构

java常见数据结构

栈 stack

特点:先进后出

存储元素到集合:入栈(压栈)

取出集合中的元素:出栈(弹栈)

单一开口

队列 queue

特点:先进先出

入口和出口在集合的两侧,类似于排队

数组 array

特点:

  • 查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组,通过数组的索引可以快速查找某一元素

  • 增删慢:数组的长度是固定不变的,想要增加/删除一个元素,必须创建一个新数组,必须把原数组复制过来

  • 效率低下:在堆内存中,频繁的创建数组,复制数组中的元素,销毁数组

链表 linked list

特点:

  • 查询慢:链表中的地址不是连续的,每次查询元素都有必须从头开始查询
  • 增删快:链表结构增加/删除一个元素,对链表的整体结构没有影响

链表中的每一个元素也称之为一个节点

一个节点包含了数据源(存储数据),两个指针域(存储地址)

两种分类:

  • 单向链表:链表中只有一条链子,不能保证元素的顺序(存储元素和取出元素的顺序有可能不一致)
  • 双向链表:链表中有两条链子,有一条链子是专门记录元素的顺序,是一个有序的集合

红黑树 binary tree

二叉树:分支不能超过两个

排序树/查找树:在二叉树的基础上,元素是有大小顺序的,左子树小,又子树大

*衡树:左子树和又子树相等

不*衡树:左子树和又子树不相等

红黑树:

特点:趋*于*衡树,查询的速度非常快,查询叶子节点最大次数和最小次数不能超过二倍

  • 约束条件:
  1. 节点可以是红色的或者是黑色的
  2. 根节点是黑色的
  3. 叶子节点(空节点)是黑色的
  4. 每个红色的节点的子节点都是黑色的
  5. 任何一个节点到其每一个叶子节点的所有路径上黑色节点数量相同

s

posted @ 2021-07-22 10:57  半袋咖啡  阅读(47)  评论(0编辑  收藏  举报