Java基础数据结构
文章平均质量分 77
了解Java基础数据结构的底层以及实现
忙着追剧的村长
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
红黑树,位图的理解以及实现
因为我们前面讲到的AVL树对于平衡有着绝对的追求,它要求树高度差的绝对值要小于等于一,所以需要经常进行旋转,但是旋转会很消耗时间,所以即使AVL树的查找时间更快,我们依然引入了更加均衡的红黑树。原创 2026-08-30 20:27:36 · 177 阅读 · 5 评论 -
AVL树的实现(Java版)
本文介绍了AVL树的概念及其实现。普通二叉搜索树在极端情况下会退化为链表,查询效率降至O(n)。AVL树通过旋转操作保持平衡,确保任意节点左右子树高度差不超过1。文章详细展示了AVL树的Java实现代码,包括节点插入、四种旋转操作(左旋、右旋、左右旋、右左旋)以及平衡因子调整。通过测试用例验证了实现的正确性,确保树始终保持平衡状态,从而保证查询效率维持在O(log₂n)。原创 2026-08-16 20:06:05 · 69 阅读 · 4 评论 -
常见排序汇总--你都了解吗?
我们一般比较排序只要通过判断排序是否是稳定的,然后就是比较时间复杂度和空间复杂度,并且在下面的排序当中也会设计到,具体:也就是如下图,我们原本红色的5在后面,不过通过排序之后,可能会有以下两种情况,位置不改变也就是稳定的,空间复杂度我们探究的是最坏情况。原创 2026-07-01 12:27:27 · 220 阅读 · 3 评论 -
Java数据结构8(map和set)
容器里只存储关键字 Key判断某个 key 是否存在、自动去重。原创 2026-07-14 23:08:11 · 197 阅读 · 0 评论 -
Java数据结构7(优先级队列)
本文介绍了堆的概念、实现方法及应用场景。堆是一种特殊的完全二叉树,分为大根堆和小根堆,其中大根堆的根节点是最大值,小根堆的根节点是最小值。文章详细讲解了堆的创建过程,包括向下调整(shelldown)和向上调整(siftup)方法,以及插入和删除操作的实现。同时介绍了Java中的PriorityQueue优先级队列及其比较器的使用方法。最后探讨了堆在解决top(k)问题和堆排序中的应用,展示了如何利用堆高效地获取前k个最小元素和实现从小到大排序。原创 2026-06-19 17:57:26 · 211 阅读 · 0 评论 -
Java数据结构6(队列和二叉树初步)
本文介绍了队列和二叉树的基本概念与实现。队列部分阐述了先进先出特性,对比了顺序存储(循环队列)和链式存储的实现方式,重点讲解了循环队列的空间优化策略。二叉树部分详细说明了树的基本术语、特殊二叉树类型(满二叉树、完全二叉树)及其性质,包括节点数量关系、遍历方式(前序、中序、后序)等核心知识点,并通过代码示例展示了二叉树的构建和遍历实现。全文通过理论讲解结合实践代码,系统性地介绍了这两种重要数据结构的关键特性与应用方法。原创 2026-05-10 14:32:03 · 381 阅读 · 0 评论 -
Java数据结构5(栈)
本文介绍了栈的基本概念、特点及常用方法。栈是一种遵循后进先出原则的线性表,主要操作包括压栈(push)和出栈(pop)。文章详细讲解了栈在编程中的实际应用:1)实现逆序打印;2)解决有效的括号匹配问题;3)判断出栈顺序是否合法;4)计算逆波兰表达式。每种应用都配有Java代码示例,如利用栈结构验证括号匹配、实现数组逆序输出等。这些示例展示了栈在算法问题中的典型使用场景,帮助读者理解栈"先进后出"的特性及其实际应用价值。原创 2026-05-03 23:17:47 · 400 阅读 · 0 评论 -
Java数据结构4(自己实现简单LinkedList)
本文介绍了链表的基本概念及其实现方法。链表是一种非连续存储结构,通过节点间的引用连接数据,与ArrayList的连续存储不同。重点讲解了双向链表的实现,包括节点类定义(包含prev和next指针)以及核心操作方法:头插法、尾插法、任意位置插入、查找、删除(单个/所有指定值节点)等。代码示例展示了如何通过改变节点引用来实现增删操作,并提供了获取链表长度、清空链表等辅助功能。实现中特别处理了头尾节点的边界情况,确保操作的正确性。原创 2026-04-25 16:24:16 · 46 阅读 · 0 评论 -
Java数据结构3(ArrayList与顺序表)
本文介绍了ArrayList的核心知识点,包括其基本概念、三种构造方法(无参构造、指定容量构造和集合构造)、常见操作方法(增删改查等)、三种遍历方式(for循环、foreach和迭代器)以及扩容机制(默认1.5倍扩容)。文章通过一个洗牌算法的实例演示了ArrayList的具体应用,包括创建牌组、洗牌和发牌等操作。最后指出ArrayList作为连续存储结构,插入删除操作时间复杂度较高(O(N)),且扩容机制可能造成空间浪费。这些内容全面覆盖了ArrayList的基本特性和使用场景,为开发者提供了实用的参考。原创 2026-04-22 12:44:01 · 329 阅读 · 1 评论 -
Java数据结构2
这是一张Java 集合框架(Java Collections Framework)的核心继承关系图,它把 Java 里所有常用的「数据容器」的关系、分类和特点数据结构说白了,就是数据的「组织 / 摆放方式」物理上的 “摆放”:数据在内存里实际怎么存逻辑上的 “摆放”:数据之间的关系怎么定(谁先谁后、谁和谁关联、有没有顺序)(我们先从线性的摆放开始学起,也就是线性表)原创 2026-04-19 14:04:16 · 379 阅读 · 0 评论 -
Java数据结构1
本文摘要:文章系统介绍了数据结构与算法的基础知识。数据结构是计算机存储数据的组织方式,包含数据的存储和访问方法。算法效率分析包括时间复杂度和空间复杂度,采用大O渐进表示法估算性能。通过冒泡排序、二分查找、递归等示例详细讲解了复杂度计算方法。同时介绍了Java中的包装类(装箱拆箱机制)和泛型概念,说明泛型通过类型参数化实现代码复用。文章结合具体代码示例,帮助理解数据结构和算法的核心概念及其实际应用。原创 2026-04-14 23:08:32 · 431 阅读 · 0 评论
分享