![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构与算法
数据结构与算法实战
程序员阿皓
5年大厂全栈开发经验,擅长Java、大数据,精通分布式、微服务等前后端技术,有问题可以私信我。
展开
-
图搜索算法详解。
图搜索算法是用于在图数据结构中查找特定节点或路径的算法。原创 2024-05-13 07:30:00 · 370 阅读 · 0 评论 -
深度优先搜索(DFS)的多语言版本代码实现。
深度优先搜索(DFS)是一种用于遍历或搜索树或图数据结构的算法。它从根节点开始沿着树的深度遍历子节点,直到到达叶子节点,然后回溯到前一个节点继续遍历。DFS通常使用递归或栈来实现。DFS的原理是通过不断地探索一个节点的所有子节点,直到无法再继续深入为止。然后回溯到上一个节点,继续探索其他子节点。这种方法保证了,同时也保证了整个数据结构被完整地遍历。原创 2024-05-13 08:00:00 · 329 阅读 · 0 评论 -
常见的查找算法——二分查找、哈希表、树结构的查找算法
在代码中,定义了一个节点类 Node ,包含了节点的值 val 、颜色 color 、左子节点 left 、右子节点 right 和父节点 parent。红黑树的特性使得其在插入和删除操作时能够保持树的平衡。在插入节点时,首先找到插入位置,并将新节点的颜色设为红色。通过这些规则,红黑树能够保证节点的颜色是红色或黑色,从而保持树的平衡和性质。在插入节点后,可能会破坏红黑树的性质,需要通过插入修复操作来修复。代码中实现了左旋和右旋操作,用于在插入节点后调整红黑树的结构,保持平衡。原创 2024-04-16 08:00:00 · 312 阅读 · 0 评论 -
数据结构与算法——图
图可以是有向的(边有方向)或无向的(边没有方向),可以是带权重的(边有权重)或无权重的。连通图是指图中任意两个顶点之间都存在路径的图,而非连通图则存在顶点之间无法相互到达的情况。:连接图中两个顶点的线段,表示顶点之间的关系。:图G中的一部分顶点和边构成的图称为子图,子图的顶点和边集合都是原图的子集。:给图中的顶点赋予不同的颜色,使得相邻顶点颜色不同的问题称为图的着色问题。:一个连通图的生成树是一个包含原图所有顶点的树,且包含原图所有边的子图。:有向图中,任意两个顶点都存在互相可达的路径的图称为强连通图。原创 2024-04-15 08:30:00 · 688 阅读 · 0 评论 -
前后端MD5加密工具类带盐值和不带盐值的实现
为了程序的安全性,通常情况下我们都会选择使用加密的手段来保证重要数据的安全。下面介绍一下前端和后端分别实现的MD5加密工具类。原创 2024-03-29 08:00:00 · 329 阅读 · 0 评论 -
数据结构与算法——树的原理与使用
树是一种重要的数据结构,它由节点(node)组成,节点之间通过边(edge)相连形成层次关系,下面介绍树结构中有一些专有名词和概念以及树的使用,包括树的创建、增加节点、删除节点、修改节点、查询节点以及树结构的先序、中序和后序遍历。原创 2024-04-03 08:00:00 · 873 阅读 · 0 评论 -
数据结构与算法——最短路径算法(如Dijkstra算法、Floyd算法)
Dijkstra算法适用于单源最短路径问题,而Floyd算法适用于所有顶点对之间的最短路径问题。它们都是经典的最短路径算法,下面通过Java来看看这两种算法的基本实现。原创 2024-03-31 08:00:00 · 390 阅读 · 0 评论 -
链表的常用操作——合并有序链表、就地逆置单链表
链表是一种常见的数据结构,常用操作包括插入节点、删除节点、反转链表、合并有序链表等。 本文使用Java实现合并有序链表、就地逆置单链表、查找链表的中间节点和删除链表中的重复元素。原创 2024-03-31 09:00:00 · 222 阅读 · 0 评论 -
数据结构与算法——顺序表的原理与使用
顺序表(Sequential List)是一种线性表的存储结构,通过数组实现,数据元素在内存中是连续存储的。顺序表中的`元素在物理上相邻`,可以通过元素在数组中的索引位置来访问和操作。原创 2024-03-31 09:00:00 · 172 阅读 · 0 评论 -
数据结构——环形队列的使用原理
环形队列(Circular Queue)是一种特殊的队列,其`队尾可以连接到队头`形成一个环。环形队列解决了普通队列在出队操作后可能造成空间浪费的问题。原创 2024-03-31 08:30:00 · 152 阅读 · 0 评论 -
数据结构之队列的基本原理与使用
队列(Queue)是一种先进先出(FIFO)的数据结构,类似于排队等待服务的情况。本文将介绍队列的基本操作以及常见应用场景和使用Java代码实现手写一个队列原创 2024-03-31 08:30:00 · 206 阅读 · 0 评论 -
数据结构与算法——顺序栈和链栈区别和用法
顺序栈和链栈是两种常见的栈数据结构实现方式。本文介绍了顺序栈与链栈的区别和用法,以及使用java代码实现了它们。原创 2024-03-25 08:00:00 · 244 阅读 · 0 评论 -
数据结构与算法——顺序队列和链队列的区别和用法
顺序队列和链队列是两种常见的队列数据结构实现方式。本文介绍了顺序队列和链队列的区别和用法,并用代码实现。原创 2024-03-30 09:30:00 · 411 阅读 · 0 评论 -
数据结构与算法——栈的使用
栈是一种具有特定操作规则的数据结构,遵循`先进后出`(FILO)的原则,即最后进入的元素最先被访问或移除。栈通常用于需要临时存储数据,以及实现逆序输出、函数调用和表达式求值等场景。原创 2024-03-30 09:30:00 · 236 阅读 · 0 评论 -
数据结构与算法——环形链表的使用原理
环形链表是一种特殊形式的链表,它的`最后一个节点`指向链表的头部,形成一个环状结构。环形链表通常用于`解决循环相关`的问题,比如游戏中的循环轮播、约瑟夫问题等。原创 2024-03-30 08:30:00 · 153 阅读 · 0 评论 -
数据结构与算法——实现二分查找算法的两种方式(递归和非递归)
二分查找算法是一种高效的查找算法,适用于已排序的数组或列表。该算法通过不断将待查找区间缩小一半的方式来快速定位目标元素的位置。二分查找算法的使用场景包括在大量数据中快速查找目标元素,例如在有序数组中查找特定元素。本文介绍了它的两种实现方式包括递归和非递归。原创 2024-03-25 08:00:00 · 231 阅读 · 0 评论 -
数据结构与算法——常见的链表操作原理
链表是一种常见的数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。链表中的节点,每个节点可以独立分配空间,通过指针链接起来形成链式结构。原创 2024-03-26 08:00:00 · 327 阅读 · 0 评论