![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java数据结构算法
文章平均质量分 50
大秦坑王
C++和Java学习记录,资料分享,校招笔试面试题目分享
展开
-
Java代码 - 基于深度优先遍历实现迷宫路径搜索
本文介绍用Java语言实现**迷宫路径的深度优先搜索**,采用非递归代码实现,找一条从左上角节点到右下角节点的可通行的路径信息,如果路径存在,打印出路径信息,否则打印迷宫不存在可同行的路径。另外代码只实现了迷宫路径搜索的算法,没有添加图形界面的实现。深度优先遍历迷宫路径,是在每一个节点都按照固定的方向往下一个节点行走,在遍历的过程中,除非该方向走不通,否则是不会检查节点其它方向的可行走状态,代码运行如下:原创 2019-05-20 15:17:18 · 2051 阅读 · 1 评论 -
Java代码 - 基于广度优先遍历实现迷宫路径搜索(搜索迷宫的最短路径信息)
上一篇文章演示了通过深度优先遍历搜索迷宫路径,无法得到最短的迷宫路径,那么通过广度优先遍历,层层向外扩张的方式,可以找到迷宫最优的路径信息,借助一个队列实现广度优先遍历层层向外扩张的思想,再借助一个数组打印节点的行走信息,代码运行如下:请输入迷宫的行列数:5 5请输入迷宫路径0 0 1 1 1 1 0 0 0 01 0 0 0 01 1 0 1 11 1 0 0 0迷宫路径搜索结果...原创 2019-05-20 15:18:39 · 2016 阅读 · 1 评论 -
Java代码 - 求解四则运算表达式
【Java实现】 输出代码,求解10以内整数的四则运算表达式。实现思路就是使用一个数字栈存储表达式中遍历的数字,一个符号栈存储表达式中的符号,根据符号的优先级,判断是符号入栈,还是进行运算,具体的代码实现如下:public static void main(String[] args) { String expression = "9-2*(4+6/2)*2"; // 数字栈 ...原创 2019-05-18 15:07:20 · 1216 阅读 · 0 评论 -
Java版高级数据结构算法 - 动态规划算法(解决常见笔试面试题)
知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!文章目录...原创 2019-05-10 14:57:29 · 1066 阅读 · 0 评论 -
Java版基础数据结构算法 - 单链表和双向链表、顺序栈和链式栈、循环队列和链式队列
知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!文章目录数组和链表单链表代码实现链表逆置寻找链表倒数第K个节点判断链表是否有环,并且找出入环节点合并两个有序单链表双向链表代码实现数组和链表在大家接触链表之前,都大量的使用过数组,数组有‘1好2不好’,怎么解释呢?1好是,数组的内存是绝对连续的,因此数组的...原创 2019-05-16 13:02:11 · 1111 阅读 · 0 评论 -
Java版高级数据结构算法 - Dijkstra迪杰斯特拉算法
Dijkstra算法是典型的单源最短路径算法,用于计算带权图中一个节点到其它所有节点的最短路径,主要特点是以起始点为中心向外层层扩张,直到扩展到重点为止。算法描述Dijkstra算法的思想是,设G=(V,E)是一个带权有向图,把图中顶点集合V分成两...原创 2019-05-10 18:18:13 · 599 阅读 · 1 评论 -
Java版高级数据结构算法 - 有向图的深度遍历、广度遍历、不带权值最短路径求解
知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!文章目录图的顶点类型定义图的类型定义从文件中读取图的顶点和路径信息创建邻接表图的深度优先遍历DFS图的广度优先遍历BFS最短路径求解深度优先遍历、广度优先遍历,最短路径代码测试这篇文章主要输出完整的有向图的相关代码,关于无向图和有向图的理论,很多数据结构的书籍...原创 2019-05-10 18:02:29 · 1906 阅读 · 1 评论 -
Java版高级数据结构算法 - 回溯算法之排列树(八皇后问题)
知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!文章目录排列树手写八皇后问题排列树解空间就是问题所有解的可能取值构成的空间,一个问题的解往往包含了得到这个解的每一步,就是对应解空间树中一条从根节点到叶子节点的路径。排列树就代表了一类问题的解空间,它并不是真实存在的数据结构,也就是说并不是真的有一颗这样的...原创 2019-05-10 12:33:59 · 663 阅读 · 2 评论 -
Java版高级数据结构算法 - 回溯算法之子集树(解决常见面试问题)
知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!子集树...原创 2019-05-09 15:30:30 · 1237 阅读 · 0 评论 -
Java版高级数据结构算法 - 跳跃表
知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!跳跃表的实现红黑树实现了一颗高效的二叉查找树,其增删查的时间复杂度达到了O(log2n)O(log_2n)O(log2n),但是红黑树的增加和删除操作,其代码实现起来,还是稍微有一些复杂的(当然如果你理解透彻其原理,实现起来也很easy),那么跳跃表就是以一...原创 2019-05-09 14:58:56 · 498 阅读 · 0 评论 -
Java版高级数据结构算法 - 红黑树
知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!目录红黑树的定义红黑树的左旋和右旋红黑树的插入操作红黑树的删除操作红黑树的定义AVL树为了维护二叉排序树的平衡,在插入和删除时做了大量的旋转操作,当数据量大了以后,AVL树的旋转操作就拖慢了插入和删除的时间。有一种2-3-4树,是一颗完全平衡的树,所有的叶...原创 2019-04-16 14:34:22 · 900 阅读 · 0 评论 -
Java版高级数据结构算法 - AVL树
知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!目录AVL树的定义AVL树的四种旋转操作AVL树的插入操作AVL树的删除操作AVL树的定义BST树最差的情况下,就退化成一条链表了,增删查的时间复杂度就无法达到O(log2n)O(log_2n)O(log2n),AVL树在BST的基础上,加入了节点左右子树...原创 2019-04-15 21:14:46 · 493 阅读 · 0 评论 -
Java版高级数据结构算法 - BST树
知识的学习在于点滴记录,坚持不懈;知识的学习要有深度和广度,不能只流于表面,坐井观天;知识要善于总结,不仅能够理解,更知道如何表达!目录二分查找BST二叉搜索树BST树插入,删除,查询操作,递归和非递归实现BST树前序,中序,后序,层序遍历,递归和非递归实现BST树求树的高度,节点元素个数BST树区间元素查找BST求子树问题BST的LCA问题:求寻找最近公共祖先节点BST树的镜像反转问题BS...原创 2019-04-15 19:12:21 · 831 阅读 · 0 评论