数据结构java版
均摘星
普普通通的程序员大学生
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
leetcode螺旋矩阵问题
今天我们来研究leetcode的螺旋矩阵问题,下面请看原题:然后先看简单一点的方法:class Solution { public List<Integer> spiralOrder(int[][] matrix) { List<Integer> res = new LinkedList<>(); if (matrix.length == 0) { return res; }原创 2021-05-01 11:38:49 · 300 阅读 · 0 评论 -
leetcode算法POW(n,x)问题
原题如下:以上题目,如果不考虑时间的话,那么这一题有个最简单的解决办法:package medium.myPow;public class Main { public static double myPow(double x,int n){ double result=1.0; if(n==0){ return 1; } if(n<0){ for (int i = 0; i < -n; i++) { resu原创 2021-04-30 20:26:22 · 251 阅读 · 1 评论 -
动态递归【三数之和问题】
首先先看原题:package medium.threeSum;import java.util.ArrayList;import java.util.Arrays;import java.util.HashSet;import java.util.List;public class Main { public static List<List<Integer>> threeSum(Integer[] nums){ if(nums.length<原创 2021-04-29 16:57:30 · 296 阅读 · 0 评论 -
最长回文子串java暴力解法
给定一个字符串s,找到s的最长回文子串,假设s的最大长度为1000.实例:输入:"babad"输出:"bab"注意:"aba"也是一个有效答案示例2:输入:"cbbd"输出:"bb"子串(subString):原始字符串的一个连续子集子序列(subsequence):原始子串的一个子集最简单的暴力破解方法:package medium.longestPalindrome;public class Main { public static String lo.原创 2021-04-29 11:46:51 · 422 阅读 · 0 评论 -
用滑动窗口思想解决无重复最长子串问题
什么是滑动窗口?滑动窗口就是,有一个字符串,有个最左边界和一个最右边界,你要截取这个字符串中的一个无重复子串,那么现在吧你截取的字符串想象成一个窗口,这个窗口不断的往后面滑动,直到到达字符串末尾为止,在窗口滑动的过程中,你会一个一个字符往后面遍历,得到他的最大的无重复子串,这个过程就叫做滑动窗口。下面我们看一段实例:package medium.lengthOfLongestSubstring;import java.util.HashSet;import java.util.Set;.原创 2021-04-29 09:15:55 · 370 阅读 · 0 评论 -
2-3树原理+代码实现!超简单java入门版!
2-3查找树为了保证树的平衡性,我们需要一些灵活性,因此在这里我们允许树中的一个结点保存多个键,确切的说,我们将一颗标准的二叉查找树的结点称为2-结点(含有一个键和两条链)。而现在我们引入3-结点,它含有两个键和3条链。2-和3-结点中的每条链对应着其中保存的键所产生的一个区间。定义:一颗2-3树要么为空,要么满足下面两个要求:2-结点:含有一个键,及其对应值得两条链,左链接指向2-3树中的键都小于该结点,右链接指向2-3树中的键都大于该结点3-结点:含有两个键(及其对应的值)和3条链原创 2021-01-21 13:30:25 · 547 阅读 · 0 评论 -
二叉树遍历扩展
在前面的一章中,我们知道了如何实现简单的二叉树,可以实现get查询,put插入,以及delete删除。下面我们对二叉树的查询进行一定的扩展,查询二叉树中的最小值和最大值查询二叉树中的最小键在某些情况下,我们需要查找出树中存储的所有元素的键的最小值,比如我们树中存储的是学生的排名和姓名数据。那么我们需要查找出排名最低是多少名?这里我们设计以下两个方法来完成:方法作用public Key min()找出树中最小的键private Node min(Node x)找出指定树X原创 2020-11-28 15:50:03 · 364 阅读 · 0 评论 -
二叉树的java实现 超级简单讲解版!
二叉树的基本定义简而言之:二叉树就是度不能超过2的树(每个树只能有两个节点)满二叉树:一个二叉树,如果每一个层的结点树达到最大值,则在这个树就是满二叉树完全二叉树:叶结点只能出现在最下层和次下层,并且最下面那一层的结点都集中在该层最左边的若干位置的二叉树二叉查找树二叉查找树是一种特殊的二叉树,相对较小的值保存在左结点中,较大的值保存在右结点中。根据对图的观察,我们发现二叉树其实就是由一个一个的结点及其之间的关系组成的,按照面向对象的思想,我们设计一个结点来描述结点这个事务。...原创 2020-11-23 21:01:28 · 1636 阅读 · 11 评论 -
树的数据结构
树的定义树是我们计算机中一种非常重要的数据结构,同时使用树这种数据结构,可以描述现实生活中的很多事物,列如族谱,单位的组织架构等等。树是由n(n>=1)个有限结点组成一个有层次的集合,把他叫做数是因为他看起来像一课倒挂的树树具有以下特点:每个结点有零个或者多个子结点没有父结点的结点为根结点每一个非根结点只有一个父结点每个结点及其后代结点整体上可以看做是一课树,称为当前父结点的一个子树树的相关术语结点的度:每个结点含有的子树个数称为该结点的度叶结点:度为0的结点被称为叶结点,原创 2020-11-21 15:06:35 · 526 阅读 · 0 评论 -
无序符号表
符号表符号表最主要的目的就是将一个键和一个值联系起来,符号表能够存储的数据元素是一个键和一个值共同组成的键值对数据,我们可以根据键来查找对应的值哈希表一般被称为散列表,而符号表一般是基于hash表去实现的,所以符号表和hash表正常情况下是不能去划等号的但是,我的理解就是,符号表不过是一种键值对的集合罢了,最常见的符号表就是Hash表.这篇博文的目的是带大家用前面学的链表思想手动实现一个符号表(无序符号表)1、首先先创建一个基本的JAVA链表框架 //首结点 private Nod原创 2020-11-21 13:50:41 · 827 阅读 · 1 评论 -
队列结构实现
队列结构实现栈和队列的区别不大,他们的区别主要在于先进先出与先进后出区别1:队列:先进先出栈:先进后出区别2:队列:只能在表的一端进行插入,在表的另一端进行删除栈:只能在表的一端进行插入删除区别3:队列:基于地址指针进行遍历,而且可以从头部和尾部进行遍历,但不能同时遍历,无需开辟空间,因为在遍历过程中不影响数据结构,所以遍历速度要快栈:只能从顶部读取数据,也就是说最先进入栈底的,需要遍历整个栈才能取出来,而且在遍历数据的同时需要为数据开辟临时空间,保证数据的一致性下面我们来原创 2020-11-21 12:53:24 · 406 阅读 · 0 评论
分享