![](https://img-blog.csdnimg.cn/8129b878d2c346d4b8f654176a082bd3.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
那些年难哭了的数据结构
文章平均质量分 81
数据结构是非常重要的一门课,让我们一起好好学习它吧!!!꒰╬•᷅д•᷄╬꒱
小熊爱吃软糖吖
热爱可抵岁月漫长,温柔可挡艰难时光
展开
-
【数据结构Java版】对象的比较之Comparable与Comparator比较器
目录一、基本类型的比较二、对象类型的比较(1)对象类型比较出现的问题(2)重写基类equals方法(3)基于Comparable接口的比较1.实现Comparable接口,重写compareTo方法(4)基于Comparator比较器的比较1.用户自定义比较器类,实现Comparator接口2.覆写Comparator中的compare方法(5)三种比较方式对比三、PriorityQueue的比较方式在Java中,基本类型的对象可以直接比较大小。基本类型byte、short、int、long、float、d原创 2023-01-05 08:30:00 · 2039 阅读 · 73 评论 -
【数据结构Java版】二叉树堆与优先级队列PriorityQueue
目录一、优先级队列(1)优先级队列的概念(2)优先级队列的模拟实现二、堆(1)堆的概念(2)堆的存储方式(3)堆的创建1.堆的向下调整2.堆的创建3.建堆的时间复杂度(4)堆的操作1.堆的插入2.堆的删除(5)堆的应用1.优先级队列(PriorityQueue)的实现2.Top-k问题三、PriorityQueue接口(1)PriorityQueue的特性(2)PriorityQueue常用接口介绍1. 优先级队列的构造2. 优先级队列常用功能3.优先级队列扩容方式四、相关oj练习题原创 2022-12-31 07:10:33 · 1189 阅读 · 34 评论 -
【数据结构Java版】树与二叉树的相关知识全解
a.树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,(根朝上,而叶朝下)它具有以下的特点:b.有一个特殊的结点,称为根结点,根结点没有前驱结点。除根结点外,其余结点被分成M(M > 0)个互不相交的集合T1、T2、......、Tm,其中每一个集合Ti (1原创 2022-12-27 08:33:39 · 779 阅读 · 24 评论 -
【数据结构Java版】Stack栈的妙用
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。出数据在栈顶。观察栈顶元素,而不动栈的结构:peekStack继承了Vector,Vector和ArrayList类似,都是动态的顺序表,不同的是Vector是线程安全的。原创 2022-12-17 11:30:00 · 885 阅读 · 13 评论 -
【数据结构Java版】Queue队列的活用
队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out)入队列:进行插入操作的一端称为队尾(Tail/Rear)出队列:进行删除操作的一端称为队头(Head/Front)查看队头元素:peek队列:java中,队列的含义被淡化了,队列使用Queue接口来表示。原创 2022-12-16 10:30:00 · 1106 阅读 · 10 评论 -
【数据结构Java版】LinkedList与链表
一、什么是LinkedList二、LinkedList的模拟实现(1)合法LinkedList的要求(2)LinkedList实现的内容1.结点个数2.链表尾插元素3.链表头插元素4.指定下标插入元素5.删除指定下标结点6.删除指定元素7.获取指定下标元素8.设置指定下标元素9.从前往后获取指定元素下标10.从后往前获取指定元素下标11.判断是否包含指定元素12.清空链表13.判断链表是否为空三、LinkedList的使用(1)LinkedList的构造四、ArrayList与LinkedList的比较原创 2022-10-19 00:33:04 · 700 阅读 · 1 评论 -
【数据结构Java版】链表之单链表的实现
如何定义一条链表。何如遍历链表,按照从前到后的顺序,依次访问链表中的元素。打印一条链表(依赖遍历链表中的所有元素)查找链表中存在的某个元素【目前只能做到从前往后遍历,无法做到从后往前遍历(代价很大)】找到链表从前往后数,第n个结点(元素)的操作。找到链表从后往前数,第n个结点(元素)的操作。关于链表的插入、删除操作。头插、头删。尾插、尾删。ArrayList的缺陷(1)链表的概念及结构(2)链表的类型1.单向or双向2.带头结点or不带头结点3.循环or不循环1.定义链表2.遍历链表原创 2022-10-17 18:40:41 · 1125 阅读 · 1 评论 -
【数据结构Java版】ArrayList与顺序表
一、线性表线性表(Linear list)是n个具有相同特性的数据元素的有限序列,线性表是一种在实际生活中应用广泛的数据结构。常见的线性表:顺序表、链表、栈、队列。线性表在逻辑上是线性结构,但物理上不一定是连续的。线性表在物理上存储时,通常以数组和链式结构的形式存储。二、顺序表(1)顺序表概念顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。(2)接口的实现自定义的线性表(以接口的形式体现)1.元素类型Long1)原创 2022-10-12 20:10:04 · 531 阅读 · 0 评论 -
【数据结构Java版】杨辉三角中ArrayList的运用
当我们学习lArrayList、泛型等等概念后,对于杨辉三角有了新的解法。前情提要:关于List的理解List可以拆解成ListList原创 2022-10-12 20:02:04 · 214 阅读 · 0 评论 -
【数据结构Java版】扑克牌中ArrayList的运用
进行发牌的操作,要求最后每名玩家 5 张牌,所以一共需要发 5 轮牌,每次使用add()方法给每位玩家添加牌,并使用remove()方法移除一副牌中已经被派发的牌。最后可以使用addAll()方法回收所有牌,并使用clear()方法清空玩家手中的牌。运用ArrayList定义一副牌,其中元素是一张牌即Card类:List 一副牌 = new ArrayList();、♠)两种私有属性。首先定义一张牌类,其中包含数值(A、2、3、4、5、6、7、8、9、10、J、Q、K)和花色(原创 2022-10-12 19:39:22 · 290 阅读 · 0 评论 -
【数据结构Java版】自定义ArrayList实现的完整代码
自定义ArrayLis实现的完整代码如下所示,其中包含用主函数测试,可以自行运行。原创 2022-10-12 19:07:55 · 463 阅读 · 0 评论