![](https://img-blog.csdnimg.cn/2acceb668275425791f530af10df87e9.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构
文章平均质量分 96
数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的
集合。
书生-w
过去无法挽回,未来可以改变。
展开
-
【Java 数据结构】PriorityQueue(堆)的使用及源码分析
Java集合框架中提供了PriorityQueue和PriorityBlockingQueue两种类型的优先级队列,PriorityQueue是线程不安全的,PriorityBlockingQueue是线程安全的,本文主要介绍PriorityQueue原创 2023-04-21 04:52:39 · 15494 阅读 · 0 评论 -
【Java 数据结构】集合类 (精华篇)
Collection 接口是层次结构中的根接口。构成 Collection 的单位称为元素。Collection 接口通常不能直接使用,但该接口提供了添加元素、删除元素、管理数据的方法。由于 List 接口与 Set 接口都继承了 Collection 接口,因此这些方法对 List 集合与 Set 集合是通用的。原创 2023-04-15 02:44:33 · 18501 阅读 · 0 评论 -
【Java 数据结构】树和二叉树
树是一种非线性的数据结构,它是由n个(n>=0)个有限节点组成一个具有层次关系的集合。它的形状像一颗倒挂的树,根在上,叶在下。特点:· 有一个特殊的结点称为根节点,根节点没有前驱结点除根节点外,其余结点被分成M(M>0)个互不相交的集合T1,T2,.....,Tm,其中每一个集合又是一颗与树类似的字树。每棵子树的根节点有且只有一个前驱,可以没有或者多个后继· 树是递归定义的注意:在树形结构中,子树不能有交集,否则就不是树形结构原创 2023-04-17 18:51:59 · 16759 阅读 · 1 评论 -
【Java 数据结构】二叉树的经典面试题 (图解)
本文总结了二叉树的多种经典题型供读者参考,帮助读者掌握二叉树递归遍历的思路原创 2023-04-20 03:30:01 · 15825 阅读 · 0 评论 -
【Java 数据结构】Map和Set
Map和Sat是一种专门用来进行搜索的容器或者数据结构,其具体效率与具体的实例化子类有关.模型: 模型分为两种分别为:纯 K 模型,如: 快速查找某个名字在不在通讯录中K–Value模型:,如: 统计文件中每个单词出现的次数,统计结果是每个单词都有与其对应的次数: 注:Map中存储的就是key-value的键值对,Set中只存储了Key。原创 2023-04-26 17:37:55 · 14802 阅读 · 0 评论 -
【Java 数据结构】二叉树的遍历 (递归和非递归实现)
递归的执行时的函数栈帧就是递出去再回退, 如果要模拟递归, 一般情况下都是使用栈, 前序遍历(根, 左, 右)二叉树的非递归实现就是, 没有递归就只能用利用while循环按照前线遍历的思路,在循环里头先添加根结点,然后不断往左遍历,直到左树为空,再继续遍历右树。从添加左树转为右树时,有个难点,右树可能为空,也可能不为空,如果右树为空,循环就直接结束了,我们没办法遍历剩下的元素了,所以我们需要要在外层再套上一个循环,当栈不为空时,从栈里面弹出一个元素继续遍历.原创 2023-04-20 05:50:26 · 15845 阅读 · 0 评论 -
[Java 数据结构] 反射、枚举和lambda表达式
java提供的反射机制是一把双刃剑,它打破了我们对原有访问修饰限定符的认知。枚举是一个特殊的类,可以将一些可能出现的情况枚举出来,以便于我们使用。lambda表达式是对代码的一种简写,可以让代码足够简单。原创 2023-04-27 16:44:50 · 14299 阅读 · 0 评论 -
【Java 数据结构】泛型
(1)JDK1.5以后(2)泛型实际就是 一个引起来的 参数类型,这个参数类型 具体在使用的时候才会确定具体的类型。(3)使用了泛型以后,可以确定集合中存放数据的类型,在编译时期就可以检查出来。(4)使用泛型你可能觉得麻烦,实际使用了泛型才会简单,后续的遍历等操作简单。都是引用数据类型,不能是基本数据类型。在JDK1.7以后可以写为:-- ---钻石运算符1.泛型类,泛型接口/*** GenericTes就是一个普通的类。原创 2023-04-14 21:45:33 · 16874 阅读 · 0 评论 -
【Java 数据结构】十大排序 (动图解析)
所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的。原创 2023-04-24 06:51:56 · 15584 阅读 · 0 评论 -
【Java 数据结构】包装类 (通俗易懂)
Java语言是面向对象的编程语言,而基本数据类型声明的变量并不是对象,为其提供包装类,增强了Java面向对象的性质。而且,如果只有基本数据类型,使用时是很不方便的,比如,在集合类中,无法将int 、double等类型放进去的,因为集合的容器要求元素是Object类型。此外,包装类还为基本类型添加了属性和方法,丰富了基本类型的操作。如当我们想知道int取值范围的最小值,我们需要通过运算,如下面所示,但是有了包装类,我们可以直接使用Integer.MAX_VALUE即可。原创 2023-04-15 14:56:45 · 17019 阅读 · 0 评论 -
【Java 数据结构】单向链表和双向链表的实现 (LinkedList)
首先我们和ArrayList一样,将MySingleList单独定义为一个Java文件,然后每一个结点我们将它定义成一个静态内部类,这样就方便我们访问结点的成员,,还是和ArrayList一样,我们再定义一个Test类用来测试我们的单链表,写一个函数可以测试一下原创 2023-04-16 05:34:42 · 17766 阅读 · 0 评论 -
【Java 数据结构】优先级队列 (堆)
我们都学过队列,队列是一种先进先出的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队列时,可能需要优先级高的元素先出队列,这就是优先级队列。比如有时候我们在打游戏的时候,别人打电话给你,那么系统一定是先处理打进来的电话。原创 2023-04-21 03:31:10 · 15541 阅读 · 0 评论 -
【Java 数据结构】栈的实现及相关OJ题
栈是一种数据结构,是操作受限制的线性表(先进后出),它只能在固定的一端进行插入和删除操作,进行数据插入和删除的一端为栈顶,另一端为栈底,按存储方式分为。原创 2023-04-17 03:29:16 · 16506 阅读 · 0 评论 -
【Java 数据结构】队列的实现及相关OJ题
一、队列的基本概念1.什么是队列只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作的一端称为队头(Head/Front)2.普通队列和双端队列3.关于队列一些操作的实现①普通队列Queue(一般多使用返回特殊值的处理,更加方便)错误处理抛出异常返回特殊值入队列add(e)offer(e)出队列remove()poll()原创 2023-04-17 09:15:27 · 16141 阅读 · 2 评论 -
【Java 数据结构】单链表经典面试题 (动图解析)
链表几乎可以说是数据结构的重中之重,链表也是大厂面试必考的知识点,要想学好链表,最重要的就是画图解决问题,原创 2023-04-16 10:13:16 · 16455 阅读 · 0 评论 -
【Java 数据结构】ArrayList的实现和底层源码讲解
顺序表本质上就是一个数组,而顺序表就是实现对这个数组进行增删查改等操作方法的一个类,而Java中也有类似与顺序表的集合类:ArrayList 下面我会对这个类里面比较重要且常用的方法进行实现。原创 2023-04-15 22:27:46 · 17007 阅读 · 0 评论 -
【Java 数据结构】二叉搜索树的实现
二叉搜索树又称二叉排序树,它或者是一棵空树,或者是具有以下性质的二叉树:1.若它的左子树不为空,则左子树上所有节点的值都小于根节点的值2.若它的右子树不为空,则右子树上所有节点的值都大于根节点的值3.它的左右子树也分别为二叉搜索树ps:二叉搜索树的中序遍历一定是有序的(从小到大)原创 2023-04-26 13:22:03 · 14483 阅读 · 0 评论 -
【Java 数据结构】时间复杂度与空间复杂度(快速入门篇)
随着近些年计算机快速的发展,对程序员来说入职要求也越来越高了,公司对我们的代码能力要求也越来越高了,大厂笔试中几乎全是算法题而且难度大,中小厂的笔试中也会有算法题,因此,作为程序员,掌握一些比较高级的算法尤为重要.提到算法我们经常会听见时间和空间比较复杂,那么这个时间和空间是什么意思呢?原创 2022-11-26 15:11:45 · 28688 阅读 · 11 评论