![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
文章平均质量分 94
张嘉烘
这个作者很懒,什么都没留下…
展开
-
ArrayList的实现
ArrayList的实现1, 私有属性2, 构造方法3, 元素存储4, 元素读取5, 元素删除6, 调整数组容量ensureCapacity:7, 转为静态数组toArray总结对于ArrayList而言,它实现List接口、底层使用数组保存所有元素。其操作基本上是对数组的操作。下面我们来分析ArrayList的源代码:1, 私有属性ArrayList只定义了两个私有属性:elementData存储ArrayList内的元素,size表示它包含的元素的数量。有个关键字需要解释:transient原创 2021-04-14 09:52:15 · 769 阅读 · 0 评论 -
经典排序算法
经典排序算法1.冒泡排序2.选择排序3.插入排序4.希尔排序5.归并排序快速排序1.冒泡排序冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。算法步骤比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相...原创 2020-08-21 22:19:55 · 90 阅读 · 0 评论 -
java中的堆实现
java中的堆实现如图:对于java中的堆,我们使用数组来实现可以看出,通过一个节点在数组中的索引计算出它的父节点及左右孩子节点的索引。//返回左节点public int left(int i) { return (i + 1) * 2 - 1;}//返回右节点public int right(int i) { return (i + 1) * 2;}//返回根节点public int parent(int i) { // i为根结点 if (i ==原创 2020-06-29 16:14:34 · 1017 阅读 · 0 评论 -
Java 栈
java实现栈栈是一种先进后出的数据结构,最后入栈的元素,最先读取出来。就像向箱子里放书一样,最后放进去的那本书,我们可以最先从箱子里取出来。栈可以分为静态栈(数组实现)和动态栈(链表实现)Java实现动态栈通过链表实现栈,我们可以想象有个栈顶节点,当入栈的时候,原先的栈顶节点成为新的节点后继节点,新的节点成为新的栈顶节点。同理,出栈的时候,讲栈顶节点弹出,第二个节点成为新的栈顶节点。...原创 2020-01-09 09:36:47 · 87 阅读 · 0 评论 -
java实现链表
Java实现链表单向链表:单向链表是最简单、最基础的链表,它的一个结点(node)分两部分,第一部分存储结点的数据信息(data),第二部分存储指向下一结点的地址(next)信息。最后一个结点(链尾)指向一个空地址(null)。单向链表一般只在链表表头(链头)结点的位置插入元素,这样每次新加入的元素都会在链头位置,而最先加入的元素会在链尾位置。删除操作时,如果在链头位置删除,只需要把头结点指向其...原创 2020-01-09 09:23:34 · 281 阅读 · 0 评论 -
Java实现深度优先遍历和广度优先遍历
Java实现深度优先遍历和广度优先遍历深度优先搜索的步骤为:(1)、首先节点 1 进栈,节点1在栈顶;(2)、然后节点1出栈,访问节点1,节点1的孩子节点3进栈,节点2进栈;(3)、节点2在栈顶,然后节点2出栈,访问节点2(4)、节点2的孩子节点5进栈,节点4进栈(5)、节点4在栈顶,节点4出栈,访问节点4,(6)、节点4左右孩子为空,然后节点5在栈顶,节点5出栈,访问节点5;(...原创 2020-01-09 09:14:38 · 455 阅读 · 0 评论 -
什么是HashMap
什么是HashMapHashMap是一个用于存储Key-Value键值对的集合,每一个键值对也叫做Entry。这些个键值对(Entry)分散存储在一个数组当中,这个数组就是HashMap的主干。HashMap数组每一个元素的初始值都是Null。对于HashMap,我们最常使用的是两个方法:Get 和 Put。Put方法调用Put方法的时候发生了什么呢?比如调用 hashMap.put(“apple”, 0) ,插入一个Key为“apple"的元素。但是,因为HashMap的长度是有限的,当插原创 2020-05-29 22:18:57 · 702 阅读 · 0 评论