
数据结构
文章平均质量分 65
田里插秧
这个作者很懒,什么都没留下…
展开
-
合并k个已排序的链表
这段代码通过优先队列高效地合并了 k 个有序链表。它首先将所有链表的头节点添加到优先队列中,然后逐个取出队列中的最小节点,并将其连接到合并后的链表中。通过这种方式,它能够保持合并后的链表也是有序的。原创 2024-09-20 23:34:57 · 409 阅读 · 1 评论 -
合并两个排序的链表
输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。原创 2024-09-20 22:27:04 · 466 阅读 · 0 评论 -
链表内指定区间反转
如果链表为空(head == null),则无需反转,直接返回null(但这里实际上返回了head,即null,因为head已经是null)。如果链表只有一个节点(head.next == null),则不存在需要反转的区间,直接返回head。如果m等于n,表示没有需要反转的区间,也直接返回head。原创 2024-09-20 21:33:47 · 415 阅读 · 0 评论 -
数据结构顺序表(一)
即,第i个数据元素ai的存储位置为LOC(ai) = LOC(a1) + (i-1) * k,其中k为每个元素占用的存储单元长度,LOC(a1)为第一个元素的存储位置。例如,在顺序表的末尾插入或删除元素的时间复杂度为O(1),而在任意位置插入或删除元素的时间复杂度为O(n)。插入和删除操作需要移动大量元素:当在顺序表的非末尾位置插入或删除元素时,需要移动插入位置或删除位置之后的所有元素。在哈希表的设计中,当发生哈希冲突时,可以使用开放地址法解决冲突,其中顺序表可以作为开放地址法的一种存储结构。原创 2024-06-28 08:57:23 · 551 阅读 · 0 评论 -
数据结构顺序表(二)
Arrays.copyOf(array, 2 * array.length) 是 Java 中一个常用的方法,用于将数组 array 扩容到原来的两倍大小。这个方法会创建一个新的数组,其长度为原数组长度的两倍,并将原数组的元素复制到新数组中。然后,你可以将新数组赋值给原数组的引用变量,从而实现了数组的扩容。如果两者相等,那么顺序表(或者更具体地说,是数组实现的线性表)就已经满了,方法会返回 true;如果数组已满,需要对已有数组扩容,扩容后即可新增数组元素。想要新增元素,需要判断顺序表是否已满!原创 2024-06-28 10:40:59 · 263 阅读 · 0 评论 -
数据结构顺序表(三)
所插入的数据前面一定要存在元素,如示例56不可插入在4下标。在数据结构中插入一个元素时,该元素一定要有。34的位置-->usedSize-1。原创 2024-06-28 12:06:48 · 357 阅读 · 1 评论 -
数据结构顺序表
在数据结构中,顺序表(Sequential List)是一种线性表,它使用一段地址连续的存储单元依次存储线性表的数据元素。这种表示方式也被称为顺序存储结构或数组表示法。顺序表是用一段地址连续的存储单元依次存储线性表的数据元素。一般情况下,顺序表采用一维数组作为存储结构。在顺序表中,数据元素之间的逻辑关系由其元素的存储位置(下标)来表示。即,第i个数据元素ai的存储位置为LOC(ai) = LOC(a1) + (i-1) * k,其中k为每个元素占用的存储单元长度,LOC(a1)为第一个元素的存储位置。原创 2024-06-30 18:24:06 · 679 阅读 · 0 评论 -
数据结构ArrayList
在编程中,ArrayList 是一个非常常用的数据结构,特别是在 Java 语言中。ArrayList 属于 Java 集合框架(Java Collections Framework)的一部分,它实现了 List 接口。ArrayList 是一个动态数组,可以容纳任何类型的对象(在 Java 中是泛型化的,所以你可以指定 ArrayList 容纳的元素类型)。原创 2024-07-03 16:59:38 · 439 阅读 · 0 评论 -
数据结构ArrayList优缺点
ArrayList是 Java 集合框架(Java Collections Framework)中的一个重要类,它实现了List接口,用于存储元素的有序集合。ArrayList内部基于动态数组实现,这意味着它可以自动调整大小以存储更多元素。下面列出ArrayList。原创 2024-07-05 14:54:23 · 391 阅读 · 0 评论 -
数据结构ArrayList常用方法
isEmpty()方法用于检查ArrayList是否为空,即是否没有任何元素。如果ArrayList中没有元素,则此方法返回true;否则返回false。size()方法用于获取ArrayList中元素的数量。如果ArrayList为空,则此方法返回0;如果不为空,则返回元素的实际数量。原创 2024-07-06 10:08:42 · 946 阅读 · 0 评论 -
数据结构链表(一)
链表(Linked List)是一种常见的数据结构,它由一系列节点(Node)组成,每个节点都包含两个部分:一是存储数据元素的数据域(Data Field),二是存储指向下一个节点地址的指针域(Pointer Field)或链接(Link)。通过指针域,节点之间可以相互连接,形成一个链状结构。链表有多种类型,但最常见的有两种:单向链表(Single Linked List)和双向链表(Double Linked List)。原创 2024-07-05 15:45:31 · 216 阅读 · 0 评论 -
数据结构链表(二)
单向链表是一种基本的数据结构,它由一系列节点组成,每个节点包含一个数据元素和一个指向下一个节点的指针。在单向链表中,只能从前一个节点访问到后一个节点,无法直接访问前一个节点。因此,单向链表的遍历总是从头部开始,直到到达尾部。双向链表则是在单向链表的基础上增加了一个指向前一个节点的指针。这意味着每个节点不仅可以访问其后继节点,还可以访问其前驱节点。因此,双向链表可以从两头开始遍历,提供了更大的灵活性。在双向链表中,每个节点包含两个指针:一个是next指针,指向下一个节点;另一个是prev。原创 2024-07-05 15:53:14 · 903 阅读 · 0 评论 -
数据结构链表(三)
遍历链表,删除第一次出现关键字为key的节点,得到单链表长度,链表中的节点个数,任意位置插入原创 2024-07-06 15:18:43 · 143 阅读 · 0 评论 -
数据结构链表(四)
数据结构链表是一种在物理存储单元上非连续、非顺序的存储结构,它通过指针(或引用)将一系列节点(Node)连接起来,以表示数据元素的逻辑顺序。原创 2024-07-11 17:06:57 · 321 阅读 · 0 评论 -
数据结构链表(五)
单链表部分基本方法实现代码详解包含遍历单链表,获取链表长度,查找是否包含关键字key在单链表中,头插法,尾插法原创 2024-07-11 18:19:40 · 211 阅读 · 0 评论 -
实现反转链表
首先检查链表是否为空或只有一个节点。如果是,直接返回原链表(因为反转一个空链表或只有一个节点的链表仍然是它本身)。指向了反转后链表的头节点,因此返回。原创 2024-07-12 04:13:00 · 327 阅读 · 0 评论 -
单链表打印中间节点
快慢指针(也称为龟兔赛跑算法)来找到链表的中间节点,是一种非常高效且简洁的算法思想。这种算法的核心在于利用两个指针以不同的速度遍历链表,从而在中就能找到中间节点。原创 2024-07-12 04:39:47 · 277 阅读 · 0 评论 -
输出单链表中倒数第K个节点
算法思想是基于快慢指针(也称为“龟兔赛跑”算法)来找到链表中倒数第k个节点的原创 2024-07-12 05:04:46 · 380 阅读 · 0 评论 -
数据结构——栈
数据结构中的栈(Stack)是一种遵循后进先出(LIFO, Last In First Out)原则的有序集合。这种数据结构只允许在栈顶进行添加(push)或删除(pop)元素的操作。栈的实现可以使用数组或链表来完成,每种实现方式都有其特点。原创 2024-07-29 14:42:51 · 389 阅读 · 0 评论 -
数据结构——队列
数据结构中的队列(Queue)是一种常见且重要的数据结构,它遵循先进先出(FIFO, First-In-First-Out)的原则。在Java中,队列可以通过多种方式实现,如使用数组、链表等。。原创 2024-07-29 17:11:50 · 451 阅读 · 0 评论 -
数据结构——栈和队列
栈的插入操作称为入栈(Push),即将新元素放到栈顶元素的上面,使之成为新的栈顶元素。栈的删除操作称为出栈(Pop),即将栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。栈可以通过顺序结构(如数组)或链式结构(如链表)来实现。原创 2024-07-29 17:14:37 · 265 阅读 · 0 评论