![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java数据结构
文章平均质量分 86
Java数据结构
小突击花呀
这个作者很懒,什么都没留下…
展开
-
ArrayList和LinkedList
在集合框架中,ArrayList是一个普通的类,实现了List接口说明ArrayList实现了RandomAccess接口,表明ArrayList支持随机访问ArrayList实现了Cloneable接口,表明ArrayList是可以clone的ArrayList实现了Serializable接口,表明ArrayList是支持序列化的和Vector不同,ArrayList不是线程安全的,在单线程下可以使用,在多线程中可以选择Vector或者。...原创 2022-08-06 15:00:12 · 465 阅读 · 1 评论 -
初始集合框架
集合框架简介1. 什么是集合框架2.集合框架的重要性1. 什么是集合框架Java集合框架Java Collection Framework,又被称为容器Container,是定义在java.util包下的一组接口interfaces和其实现类classes。其中主要表现为将多个元素element置于一个单元中,用于对这些元素进行快速、便捷的存储store、检索retrieve、管理manipulate,即平时我们俗称的增删改查CRUD。2.集合框架的重要性开发中的使用:使用成熟的集合框架,有原创 2022-05-09 11:57:54 · 219 阅读 · 1 评论 -
Map--Set--二叉搜索树OJ练习题
OJ练习题1. 只出现一次的数字2. 复制带随机指针的链表3. 宝石与石头4. 旧键盘5. 前K个高频单词6. 二叉搜索树与双向链表1. 只出现一次的数字只出现一次的数字分析://最佳的解决方式是对所有元素进行异或//异或的结果就是只出现一次的数据//在这个地方的目的是为了练习Map和Set//直接将nums中的元素往HashSet中插入//插入时,如果该元素已经存在,则删除class Solution { public int singleNumber(int[] num原创 2021-12-03 12:30:13 · 160 阅读 · 1 评论 -
数据结构-------排序
排序1. 排序的概念及引用1.1 排序的概念1.2 排序运用1.3 常见的排序算法2. 常见排序算法的实现2.1 插入排序2.1.1 基本思想:2.1.2 直接插入排序2.1.3 希尔排序(缩小增量排序)2.2 选择排序2.2.1 基本思想:2.2.2 直接选择排序:2.2.3 堆排序2.3 交换排序2.3.1 冒泡排序2.3.2 快速排序2.3.3 快速排序优化2.3.4 快速排序非递归2.3.5 快速排序总结2.4 归并排序2.4.1 基本思想:2.4.2 归并排序总结2.4.3 海量数据的排序问题2.原创 2021-11-24 18:06:26 · 1001 阅读 · 1 评论 -
Java-----对象的比较
对象的比较1.PriorityQueue中插入对象2.元素的比较2.1 基本类型的比较2.2 对象比较的问题3.对象的比较3.1 覆写基类的equals3.2 基于Comparble接口类的比较3.3 基于比较器比较3.4 三种方式对比1.PriorityQueue中插入对象优先级队列在插入元素时要求:插入的元素不能为null,或者元素之间必须能够进行比较,在之前我们只是插入了Integer类型,那优先级队列中能否插入自定义类型的对象呢?public class Card { public i原创 2021-11-22 18:17:51 · 243 阅读 · 1 评论 -
优先级队列及堆
优先级队列1. 优先级队列1.1 概念1.2 常用接口介绍1.2.1 PriorityQueue的特性1.2.2 PriorityQueue常用接口介绍1.3 优先级队列的应用2. 优先级队列的模拟实现2.1 堆的概念2.2 堆的存储方式2.3 堆的创建2.3.1 堆向下调整2.3.2 堆的创建2.3.3 建堆的时间复杂度2.4 堆的插入与删除2.4.1 堆的插入2.4.2 堆的删除2.5 用堆模拟实现优先级队列3. 堆的应用3.13.2 堆排序3.3 Top-k问题1. 优先级队列1.1 概念队列是原创 2021-11-22 16:17:47 · 176 阅读 · 1 评论 -
二叉树练习题及答案解析
二叉树练习一、选择题1. 某二叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该二叉树中的叶子结点数为( )2.在具有 2n 个结点的完全二叉树中,叶子结点个数为( )3.一棵完全二叉树的节点数位为531个,那么这棵树的高度为( )4.一个具有767个节点的完全二叉树,其叶子节点个数为()5. 某完全二叉树按层次输出(同一层从左到右)的序列为 ABCDEFGH 。该完全二叉树的前序序列为()6. 二叉树的先序遍历和中序遍历如下:先序遍历:EFHIGJK;中序遍历:HFIEJKG.则二叉树根结原创 2021-11-18 18:10:19 · 6257 阅读 · 1 评论 -
栈和队列练习
练习一、栈的应用1. 括号匹配2. 逆波兰表达式求值3. 出栈入栈次序匹配二、OJ题1. 用队列实现栈2. 用栈实现队列3. 实现一个最小栈一、栈的应用1. 括号匹配2. 逆波兰表达式求值3. 出栈入栈次序匹配二、OJ题1. 用队列实现栈2. 用栈实现队列3. 实现一个最小栈...原创 2021-11-12 10:22:15 · 96 阅读 · 2 评论 -
数据结构-------二叉树
二叉树二叉树的性质2.4二叉树的存储2.5 二叉树的基本操作2.5.1 前置说明2.5.2 二叉树的遍历二叉树的性质3.对任何一棵树,推导:假设二叉树中总的结点个数为N,度为0的结点个数为n0个,度为1的结点个数为n1个,度为2的结点个数为n2个。N=n0+n1+n2二叉树总的结点个数为N,在二叉树中总共有N-1条边------从下往上看,n0的结点-----叶子结点:往下不可能产生边n1的结点------只有一个孩子的结点:往下只能产生一条边n2的结点------两个孩子的结点:往下可以产原创 2021-11-01 12:20:02 · 217 阅读 · 1 评论 -
数据结构--------栈和队列
栈和列队1. 栈1.1 栈的概念三级目录1. 栈1.1 栈的概念栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last in First Out)的原则。压栈:栈的插入操作叫做进栈、压栈、入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈,出数据在栈顶。三级目录...原创 2021-10-30 22:16:20 · 157 阅读 · 2 评论 -
数据结构------泛型
认识泛型1. 泛型1.1 泛型的引入1.2 泛型的概念1.3 泛型的使用2. 包装类2.1 基本数据类型及其对应的包装类2.2 装箱和拆箱2.3 自动装箱和自动拆箱1. 泛型1.1 泛型的引入 在我们之前的学习中,我们所实现的代码,类型都写死了。如果我们需要实现其他类型,就需要重新写个类。那么我们能否只写一份代码,实现任意类型都可以存储呢? 在Java中,Object是所有类的基类,如果将底层数组的类型设置成Object[],那么所有的类型都可以存储。但是,我们在后面获取元素的时候,必须要向下原创 2021-10-23 21:17:52 · 167 阅读 · 1 评论 -
数据结构-------时间复杂度和空间复杂度
时间复杂度和空间复杂度1.算法效率2.时间复杂度2.1时间复杂度概念2.2大O的渐近表示法2.3推导大O阶方法2.4常见的时间复杂度计算举例示例1示例2示例3示例43.空间复杂度3.1空间复杂度举例1.算法效率算法效率分为两种:第一种是时间效率,时间效率被称为时间复杂度。第二种是空间效率,空间效率被称作空间复杂度。 时间复杂度主要衡量的是一个算法的运行速度,而空间复杂度主要衡量一个算法所需要的额外空间。在计算机发展的早期,计算机的存储容量很小,所以很关注空间复杂度。但是经过计算机的更新换代,原创 2021-10-22 18:18:32 · 94 阅读 · 1 评论 -
开启数据结构的学习
初识数据结构1.什么是数据结构?2.容器背后对应的数据结构3.什么是算法?1.什么是数据结构? 数据结构是计算机存储、组织数据的一种方式,指相互之间存在一种或多种特定关系的数据元素的集合。2.容器背后对应的数据结构每个容器都是对特定数据结构的封装。Collection:是一个接口,包含了大部分容器常用的一些办法。List:是一个接口,规范了ArrayList和LinkedList中要实现的办法ArrayList:实现了List接口,底层为动态类型顺序表LinkedList:实现了L原创 2021-10-17 18:49:06 · 66 阅读 · 1 评论