
数据结构与算法
数据结构与算法
圆号本昊
简介:客户端@腾讯
格言:Life's a struggle, be willing to do, be happy to fear. 活着就是折腾,甘愿做,欢喜受
GitHub:https://github.com/hornhuang
bilibili:https://space.bilibili.com/262075972
展开
-
面试必备:高频算法题汇总「图文解析 + 教学视频 + 范例代码」必问之 链表 + 栈 + 队列 部分!
链表public class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = null; }}删除节点public class ListNode { int val; ListNode next; ...原创 2019-10-13 10:36:30 · 393 阅读 · 0 评论 -
Java 二叉树的建立、计算高度 与 递归输出
Java 二叉树的建立、计算高度 与 递归输出1.建立方法:(Tree_Link类)private int save = 0; private int now = 0; Scanner sc = new Scanner(System.in); /* * 构造函数 */ Tree_Link(){ }/* * 链表建立 */ public Tree Lin...原创 2018-10-28 16:44:25 · 901 阅读 · 0 评论 -
Java-中缀表达式转后缀
本文先给出思路与方法,最后将给出完整代码项目实战:https://blog.youkuaiyun.com/qq_43377749/article/details/84973206算法综述:一、中缀表达式转后缀表达式:1.中缀表达式要转后缀表达式,首先需要两个Stack(栈),其中一个应用于存放字符,另一个用于存放数字。2.读到数字直接存入数字栈中,读到字符时,要咸鱼栈内前一元素(字符)...原创 2018-11-25 15:09:16 · 418 阅读 · 0 评论 -
最短路径-Floyd弗洛伊德算法
文末给出实现的具体代码弗洛伊德算法类似于迪杰特斯拉算法他们的区别在于:1.弗洛伊德算法时间复杂度O(N³) 而 迪杰特斯拉算法为O(N²)那么为什么要学会弗洛伊德算法呢?1.弗洛伊德算法更通俗易懂2.弗洛伊德算法可以求和所有点之间的最短路径本文采用java语言实现该算法首先请看该算法的实现:要实现佛洛依德算法 你需要定义两个二维数组一个用于存储路径长度 ...原创 2018-11-28 16:00:26 · 2121 阅读 · 0 评论 -
迪杰斯特拉算法
本文以Java实现迪杰特斯拉算法文末附上完整代码以及 测试样例主要思想:1.对于给出的无向图/有向图,我们可以固定一点为原点:02.首先要有两个数组 一个用于存储两点间的距离(边),另一个数组用于存放当前点的前一个点 parent3.在当前位置distance值不为无穷的情况下,通过循环比较 (distance[i] + matrix[i][j]) < distance[...原创 2018-11-28 17:43:02 · 658 阅读 · 1 评论