
数据结构与算法
文章平均质量分 94
本专栏将讲解利用JAVA来实现数据结构,包括顺序表,链表,栈,队列,二叉树,堆等等一些面试常考数据结构,希望得到大家的支持,大家一起加油,冲刺大厂~~~加油兄弟们!!!
厚积薄发ض
当你运行错误时,不如调试一下,当你等待老师的答案时,不如自己百度一下
展开
-
【java数据结构】优先级队列
在有些情况下,我们不一定要让数据立马全部有序,比如当我们在打游戏时,突然有人打电话,游戏界面就会立马卡住不动,我们可以选择立马接电话或者立马挂电话。这就是我们应用程序在设计时,都需要有个优先级,最重要的一定会排在前面,然后在完成次大.......,这就引出了我们今天要讲的一种数据结构优先级队列,在Java jdk1.8中也给我们提供了接口PriorityQueue.如果有一个关键码的集合K = {k0,k1, k2,…,kn-1},把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中,并满足:Ki原创 2022-07-04 17:45:34 · 426 阅读 · 0 评论 -
【java数据结构】就是你爱的那颗二叉树
目录树的定义树的特点树的结点分类二叉树三种特殊的二叉树 二叉树的性质(非常重要) 二叉树的存储二叉树的基本操作二叉树的遍历二叉树的前序遍历二叉树的中序遍历二叉树的后序遍历获取树中节点的个数获取叶子节点的个数获取第K层节点的个数获取二叉树的高度检测值为value的元素是否存在层序遍历判断一棵树是不是完全二叉树树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。结点的度:一个结点含有子树的个数称为该结点的度;原创 2022-07-03 20:45:09 · 473 阅读 · 1 评论 -
【java数据结构】栈和队列
栈 (stack)只允许在有序的线性数据集合的一端(称为栈顶 top)进行加入数据(push)和移除数据(pop)。因而按照 后进先出(LIFO, Last In First Out) 的原理运作。在栈中,push 和 pop 的操作都发生在栈顶。栈这种数据结构是一种线性的数据结构,底层既可以由数组实现也可以利用链表来实现,栈有两种操作,都是对栈顶进行操作,分别是插入push()和删除pop()操作,所以是一种后进先出或者先进后出的一种数据结构,在生活中,经常就会有栈的存在,比如那在打开网页的时候,看见对你原创 2022-07-01 10:40:37 · 554 阅读 · 1 评论 -
数据结构之排序
比较排序与非比较排序内排序主要放在内存中,外排序,排序的记录个数太多,不能同时放在内存,整个排序过程要在内外存之间多次交换数据。高效率的排序算法应该具有尽可能少的关键字比较次数,尽可能少的记录移动次数稳定性:各种排序的分类 时间复杂度,空间复杂度,及稳定性的分析如果相邻元素的顺序错误,它会重复交换相邻元素。该算法不适用于大型数据集,因为它的平均和最坏情况时间复杂度非常高。1.从第一对开始相邻元素两两进行比较,按照升序来看,前面的元素大于后面的元素就进行交换,第一趟排序之后将最大的元素到达到最后的位置2.第一原创 2022-06-26 15:13:40 · 610 阅读 · 0 评论 -
【JAVA 数据结构】 JAVA实现动态数组
这篇文章我是这样安排的---》首先对ArrayList类做一个介绍-》其次对ArrayList进行模拟实现-》最后我们将ArrayList的源码几个重要的点讲一下。给大家分享个宝藏这里可以阅读ArrayList的详细源码讲解:ArrayList源码&扩容机制分析 | JavaGuide本篇文章最后讲解ArrayList源码时候会参考这篇文章进行讲解。好,我们一起来学习ArrayList吧~~~~~ArrayList类介绍...原创 2022-05-01 19:15:24 · 6412 阅读 · 0 评论