- 博客(34)
- 收藏
- 关注
原创 数据结构-PriorityQueue
队列是一种先进先出(FIFO)的数据结构,但有些情况下,操作的数据可能带有优先级,一般出队列时,可能需要优先级高的元素先出队列。优先级队列中的元素按照优先级进行排序,具有更高优先级的元素会在队列中被优先处理。底层使用了堆这种数据结构,而堆实际就是在完全二叉树的基础上进行了一些调整。从堆的概念可知,堆是一棵完全二叉树,因此可以层序的规则采用顺序的方式来高效存储,注意:对于非完全二叉树,则不适合使用顺序方式进行存储,因为为了能够还原二叉树,空间中必须要存储空节点,就会导致空间利用率比较低。2.3 堆的创建2
2025-03-24 11:12:25
934
原创 数据结构-二叉树
满二叉树和完全二叉树是二叉树的两种特定类型。二叉树的存储结构分为:顺序存储和类似于链表的链式存储。通过递归函数来创建二叉树,适合于根据特定规则生成树。手动创建二叉树可以直接定义节点,适合于小规模的树。
2025-03-23 10:56:06
832
原创 数据结构-Stack和Queue
栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为。从上图中可以看到,Stack继承了Vector,Vector和ArrayList类似,都是动态的顺序表,不同的是Vector是线程安 全的。它是一个基于数组实现的双端队列(Deque),可以高效地模拟栈的行为。在Java中,Queue是个接口,底层是通过链表实现的。
2025-03-22 10:08:12
709
原创 数据结构-LinkedList
Java中的LinkedList的底层是双向链表结构(链表后面介绍),由于链表没有将元素存储在连续的空间中,元素存储在单独的节 点中然后通过引用将节点连接起来了,因此在在任意位置插入或者删除元素时,不需要搬移元素,效率比较高。存储结构,数据元素的。
2025-03-21 20:26:03
220
原创 数据结构-ArrayList
线性表是一种在实际中广泛使用的数据结构,常见线性表:顺序表、链表、栈、队列…但是在物理上不一定是连续的,线性表在物理上存储时,通常以数组和链式结构的形式存储。顺序表是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般情况下采用数组存储。在数组上完成数据的增删查改。底层是基于数组实现的,插入或删除元素时,所有后续元素需要整体移动,导致时间复杂度为 O(N)。增容时需要重新分配新空间,并将旧数组的数据拷贝到新数组中,这会带来性能开销。增容时容量通常增长为原来的 2 倍,会导致未使用的空间浪费。
2025-03-19 23:36:48
951
原创 Java泛型(Generics(
泛型(Generics)是 Java 中的一种特性,允许在类、接口和方法中定义类型和参数,从而实现参数的类型化。泛型的主要目的是提高代码的重用性和类型安全性。
2025-03-13 16:12:15
966
原创 从零开始教你写博客(用Typora入门Markdown)
Markdown入门这里推荐用Typora,是一款简洁的Markdown文本编辑器,可以帮助我们快速上手博客。
2022-09-29 14:41:01
824
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人