Java 数据结构与算法篇

Java 数据结构篇-用链表、数组实现队列(数组实现:循环队列)

队列是一种重要的数据结构,具有先进先出(FIFO)的特性,广泛应用于各种计算机科学领域,例如操作系统的进程调度、任务管理等。在Java中,我们可以使用链表和数组(循环队列)来实现队列。本文将介绍这两种实现方法,并提供相应的代码示例。一、使用链表实现队列链表是一种动态数据结构,具有灵活的内存管理优

Java 算法篇-深入了解单链表的反转(实现:用 5 种方式来具体实现)

在数据结构中,单链表是一种重要的线性表形式,它由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针。单链表的反转是一个经典问题,涉及到将链表的方向颠倒,从而改变节点的连接顺序。本文将介绍五种不同方式来实现单链表的反转,并提供相应的 Java 代码示例。1. 迭代法最常见的反转单链表的方法

Java 数据结构篇-实现红黑树的核心方法

红黑树是一种自平衡的二叉搜索树,其主要目的是保持树的平衡性,确保在最坏情况下基本操作(插入、删除和查找)的时间复杂度为O(log n)。红黑树的特点主要包括以下几条规则:节点是红色或黑色。根节点始终是黑色。每个叶子节点(Nil节点)都是黑色。如果一个节点是红色,则它的两个子节点都必须是黑色

Java 数据结构篇-实现堆的核心方法与堆的应用(实现 TOP-K 问题:最小 k 个数)

堆的核心方法堆是一种特殊的树形数据结构,广泛应用于优先队列、图的最短路径算法等。堆有两种类型:最大堆和最小堆。最大堆的每个节点都大于或等于其子节点,最小堆则相反。在 Java 中,我们可以使用数组来有效地实现堆。下面是一些关键的操作方法:插入操作:将一个元素插入堆中,之后需要通过上浮操作维护