数据结构Java版
文章平均质量分 93
主要是将数据结构的内容用java的方式来进行实现
张钦洋yyy
备考中 考完更新啦
展开
-
那些关于单链表的题和事儿
本节内容的单链表适合于对于单链表的结构等有清晰地基本认识的朋友进一步阅读。目录1.单链表的创建2.单链表简易操作3.单链表典型操作1.单链表的创建①节点的创建class ListNode { public int val; public ListNode next;//null public ListNode(int val) { this.val = val; }}②单链表的创建a.图解b.代码 p.原创 2022-03-15 12:54:00 · 654 阅读 · 61 评论 -
你还在为哈希表而烦恼吗?
今天的哈希表可以结合上节的Map一起看哦目录哈希表1.概念1.1冲突1.2避免冲突1.3哈希函数设计1.3.1常见哈希函数直接定制法--(常用)除留余数法--(常用)平方取中法--(了解)折叠法--(了解)随机数法--(了解)数学分析法--(了解)1.4负载因子调节(重点掌握)1.5解决冲突1.5.1闭散列线性探测二次探测1.5.2开散列/哈希桶(重点掌握)1.5.3冲突严重时的解决办法1.6性能分析...原创 2022-03-09 14:27:02 · 883 阅读 · 96 评论 -
数据结构Java版Map&Set&搜索树
目录1.搜索1.1概念及场景1.2模型2.Map 的使用2.1 关于Map的说明2.2 关于Map.Entry的说明,>2.3 Map 的常用方法说明3. Set 的说明3.1常见方法说明4.搜索树4.1概念4.2搜索树的查找4.3搜索树的插入4.4搜索树的删除1.搜索1.1概念及场景 ①Map和Set的作用:一种专门用来进行搜索的容器或者数据结构,其搜索的效率与其具体的实例化子类有关。②Map和Set相比于其他类型的优原创 2022-03-06 12:47:03 · 705 阅读 · 39 评论 -
数据结构Java版排序(二)
目录1.快排的优化2.归并排序①原理②性能分析3.七大排序总结4.其余非基于比较的排序①计数排序②基数排序③桶排序1.快排的优化此部分内容紧接上节中文末提及的快排内容优化方案①:随机选取(仍是对于基准而言)问题:当随机选取到该数组序列中最大的数或者最小的数时就并改变原先的时间复杂度O(N²),空间复杂度为O(N)的状况。优化方案②:三数取中法详述:即利用折半的思想,分别找到两端的数和中间的数,分别比较其中间大小的数来作为基准。解题思路..原创 2022-02-28 21:25:04 · 1236 阅读 · 92 评论 -
数据结构Java版排序(一)
目录1.概念1.1稳定性2.七大排序2.1插入排序2.1.1直接插入排序-原理2.1.2性能分析2.1.3折半插入排序(了解)2.2希尔排序2.2.1原理2.2.2性能分析2.3选择排序2.3.1原理2.3.2性能分析2.4堆排序2.4.1原理2.4.2性能分析2.5冒泡排序2.5.1原理2.5.2性能分析2.6快速排序(重要)2.6.1原理2.6.2性能分析1.概念排序,就是使一串记录,按照其中的某个或某..原创 2022-02-17 11:52:22 · 3574 阅读 · 74 评论 -
数据结构java版之堆+对象的比较
目录1.问题提出2.元素的比较2.1元素的比较2.2 对象的比较3. 对象的比较3.1 覆写基类的equal3.2 基于Comparble接口类的比较3.3 基于比较器比较3.4 三种方式对比6.上节课遗留的堆的问题6.1TopK 问题6.2面试题1.问题提出上篇博客我们奖励优先级队列,优先级队列在插入元素时有个要求:插入的元素不能是null或者元素之间必须要能够 进行比较,为了简单起见,我们只是插入了Integer类型,那优先级队列中能...原创 2022-02-01 21:10:57 · 1458 阅读 · 27 评论 -
数据结构java版之堆
目录一、二叉树的顺序存储1.存储方式2.下标关系二、堆1.概念2.建堆3.向下调整三、堆的应用(优先级队列)1.概念2.内部原理3.操作①入队列②出队列(优先级最高)③返回队首元素(优先级最高)4. 堆的其他应用-TopK 问题一、二叉树的顺序存储1.存储方式 使用数组保存二叉树结构,方式即将二叉树用层序遍历方式放入数组中。 一般只适合表示完全二叉树,因为非完全二叉树会有空间的浪费。 即用堆来表示就是用完全二叉树来表示。...原创 2022-01-30 13:38:47 · 1631 阅读 · 38 评论 -
数据结构java版之二叉树(部分offer面试题篇)
目录一、二叉树的基本操作1.获取树中节点的个数2.获取叶子节点的个数3.子问题思路-求叶子结点个数4.获取第K层节点的个数5.获取二叉树的高度6.检测值为value的元素是否存在7.判断一棵树是不是完全二叉树二、二叉树相关oj题1. 检查两颗树是否相同2. 另一颗树的子树3. 二叉树最大深度4. 判断一颗二叉树是否是平衡二叉树5. 对称二叉树6. 二叉树的构建及遍历7. 二叉树的分层遍历8. 给定一个二叉树, 找到该树中两个指定节点的最..原创 2022-01-22 18:47:50 · 1563 阅读 · 66 评论 -
数据结构java版之二叉树(基础知识篇)
一、树1.相关概念2.树的表示形式二、二叉树1.概念2. 两种特殊的二叉树3. 二叉树的性质4.二叉树的存储5.二叉树的基本操作① 前置说明②二叉树的遍历(1)前中后序遍历目录一、树1.相关概念2.树的表示形式二、二叉树1.概念2. 两种特殊的二叉树3. 二叉树的性质4.二叉树的存储5.二叉树的基本操作① 前置说明②二叉树的遍历(1)前中后序遍历(2)层序遍历一、树1.相关概念1.树的概念树原创 2022-01-18 16:25:37 · 875 阅读 · 30 评论 -
数据结构java版之队列
目录一、队列的基本概念二、队列的一些题目队列的基本概念:1.什么是队列? 只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾(Tail/Rear) 出队列:进行删除操作的一端称为队头(Head/Front) 2.普通队列和双端队列3.关于队列一些操作的实现①普通队列Queue(一般多使用返回特殊值的处理,更加方便)简单代码示例:im..原创 2022-01-17 17:36:58 · 770 阅读 · 26 评论 -
数据结构java版之栈
# 一、栈的基本概念区分# 二、常见题型考查目录# 一、栈的基本概念区分# 二、常见题型考查一、栈的基本概念区分什么是栈什么是Java虚拟栈什么是栈帧原创 2022-01-16 15:50:55 · 978 阅读 · 33 评论