数据结构
文章平均质量分 51
数据结构
努力的小徐
道阻且长啊
展开
-
【数据结构】模拟实现栈和队列
栈是一种特殊的线性表,只允许在固定的一端进行插入和删除操作,进行数据插入和删除的一端称为栈顶,另一端称为栈底。栈的数据遵循后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做压栈/进栈/入栈,入的数据在栈顶。出栈:栈的删除操作叫做出栈,出的数据在栈顶。原创 2023-10-27 17:07:26 · 307 阅读 · 0 评论 -
【数据结构】模拟实现LinkedList
LinkedList是双向链表结构可以适用于任意插入场景下的插入和删除,效率较高,时间复杂度为O(1)。原创 2023-10-22 17:06:41 · 456 阅读 · 0 评论 -
【数据结构】模拟实现无头单向非循环链表
学过ArrayList后我们知道它的底层是用数组来存储元素的,是连续的存储空间,当我们要从ArrayList任意位置删除或插入元素时,我们要把后续整体向前或后移动,时间复杂度为O(n),效率比较低,因此ArrayList不适合做需要过多任意位置插入或删除的场景,这种场景我们使用LinkedList(链表)比较合适。原创 2023-10-21 18:07:11 · 428 阅读 · 1 评论 -
【数据结构】模拟实现顺序表
ArrayList是用一段物理地址连续的存储单元依次存储数据元素的线性结构,一般是用数组完成的。ArrayList底层是一段连续的空间,并且可以动态扩容,是一个动态类型的顺序表。原创 2023-10-20 19:41:46 · 389 阅读 · 2 评论 -
【数据结构】初识泛型
一般的类和方法,只能使用具体的类型: 要么是基本类型,要么是自定义的类。泛型,泛顾名思义就是广泛的意思。通过上面的代码我们发现,虽然在这种情况下,当前数组任何数据都可以存放,但是,更多情况下,我们还是希望他只能够持有一种数据类型。在定义泛型类时,有时需要对传入的类型变量做一定的约束,可以通过类型边界来约束。我们来看这道练习:写一个泛型,实现一个方法,方法是求指定类型数组的最大值。注意:泛型只能接受引用类型,所有的基本数据类型必须使用包装类。这样它就只接受 Number 的子类型作为 E 的类型实参。原创 2023-09-12 19:06:13 · 746 阅读 · 24 评论