doubly-linked-list相关内容

双向链表上的快速排序

我想在同步双向链表上实现快速排序算法.我给函数“分区"左右边界,然后它开始在左侧搜索较低的值,并将较大的值放在右侧.这是可行的,因为我的枢轴元素始终是最右边的元素,并且在此步骤之后它位于中间. 我总是陷入无限循环,我不知道为什么?可能是错误的中止条件? 她是我的代码: private void quickSortRec(DoublyLinkedList in, ListElement ..
发布时间:2022-01-22 20:43:30 Java开发

双链接队列比单链接队列有什么优势吗?

我被要求实现一个双链接队列,但我知道单链接队列很简单,它的所有主要功能都在 big-Theta 1 中运行.我基本上是在谈论 FIFO 实现(不包括特殊队列,如双端队列). 我看到其他人使用双链接实现来实现队列,我知道这会消耗更多存储空间,因为每个节点需要 2 个指针(prev & next). 双链接队列比单链接队列有什么优势吗?! 解决方案 你不需要双端 LL 而不是双端 ..
发布时间:2022-01-21 12:06:48 其他开发

如何找到从特定顶点开始的退化树中的所有等于路径?

我有一些 简并树(它看起来像数组或双向链表).例如,就是这棵树: 每条边都有一定的权重.我想找到从每个顶点开始的所有相等路径. 换句话说,我想获取所有元组 (v1, v, v2),其中 v1 和 v2 是任意祖先和后代,这样 c(v1, v) = c(v, v2). 让边具有以下权重(这只是示例): a-b = 3 b-c = 1 c-d = 1 d-e ..
发布时间:2022-01-09 16:18:04 其他开发

如何在java中使用通用类型的节点创建get方法

我正在实现一个循环的 DoublyLinkedList 数据结构.与单向链表一样,双向链表中的节点都引用了下一个节点,但与单向链表不同的是,双向链表中的节点也引用了前一个节点. 另外,由于链表是“循环"的,链表最后一个节点的“next"引用指向链表的第一个节点,而链表第一个节点的“prev"引用指向的是列表中的最后一个节点. 我需要帮助来启动我的 get 方法,我一直在环顾四周,但我找 ..
发布时间:2022-01-04 23:39:15 Java开发

双端链表和双向链表的区别

我不明白双端和双向链表之间的区别. 两者的主要区别是什么? 解决方案 在双向链表中,每个节点都有两个指针.一个指向其下一个节点,另一个指向其前一个节点. 在双端链表中,每个节点只有一个指向其下一个节点的指针.它与单端链表的不同之处在于,它包含两个这种类型的指针(“first"和“last"),而不是只有一个“头"节点,因此有人可以从两端插入元素到链表 (最后一张图不是那么 ..
发布时间:2022-01-01 18:41:24 其他开发

用指针实现双向链表 C++

我目前正在自学 C++,并尝试使用部分完整的指针在 C++ 中实现双向链表.我知道代码目前无法处理悬空节点或输出错误,接下来我将实现这两​​者.但是,代码至少应该能够构造一个列表对象并向其添加元素.目前,当我尝试为列表调用构造函数时遇到错误,这表明我正在请求从 LinkedList* 转换为非标量类型 LinkedList.为什么我的列表被声明为指针?任何帮助将不胜感激,谢谢! LinkedLi ..
发布时间:2022-01-01 18:26:05 C/C++开发

具有多个父节点和子节点的链表

我正在尝试设计一个从文件中获取数据的程序,然后它为唯一数据编号,链接列表还包含父列表和子列表. 数据结构: ____A/|乙丙|/\E-->FG|||我JK 节点可以有多个下一个节点(例如 A 和 C),并且可以有多个前一个节点. 文本文件包含这样的数据,我将从文件中获取数据并将它们转换为链表: A乙乙一世一个C乙FJ一个CG钾 我的问题:是否可以创建具有多个下一个节点或多 ..
发布时间:2022-01-01 18:21:55 其他开发

通过它们在后备数组中的索引交换双向链表中的项目

我有以下类型的对象数组: struct 节点 {节点 *_pPrev, *_pNext;双 *_pData;}; 一些节点参与一个双向链表,对于这样的节点,_pData!=nullptr.还有一个虚拟头节点,_pNext 指向列表的开头,_pPrev 指向列表的结尾.列表开始时只包含这个头节点,永远不应该从列表中删除它. 双向链表由一个数组支持,初始大小等于列表中的最大节点数. str ..

如何在 O(n) 时间内对双向链表进行二分搜索?

我听说可以在 O(n) 时间内对双向链表进行二分查找.访问双向链表的随机元素需要 O(n) 时间,而二分查找访问 O(log n) 个不同元素,那么运行时间不应该是 O(n log n) 吗? 解决方案 从技术上讲,双向链表二分查找的运行时间是 O(n log n) 是正确的,但这并不是一个严格的上限.使用稍微更好的二分搜索实现和更聪明的分析,可以让二分搜索在 O(n) 时间内运行. ..

如何实现双向链表

在 Haskell 中是否可以有一个双向链表,实现它们的理想解决方案是什么?我正在实现一个场景图,其中每个小部件都有一个父级和一个子级,并且向上和向下查看图形是有益的. 解决方案 在 Haskell 中拥有双向链表并不实际,因为您必须一次构建它. 例如,假设您有一个列表 [1, 2, 3, 4, 5] 想要进行双向链接.现在,让我们想象一下列表是如何表示的: data Double ..
发布时间:2021-12-14 12:14:36 其他开发

ArrayList 和 LinkedList 之间的性能差异

是的,这是一个老话题,但我仍然有些困惑. 在 Java 中,人们说: 如果我随机访问它的元素,ArrayList 比 LinkedList 快.我认为随机访问意味着“给我第 n 个元素".为什么 ArrayList 更快? LinkedList 的删除速度比 ArrayList 快.我明白这一点.ArrayList 较慢,因为需要重新分配内部备份数组.一段代码说明: Listl ..
发布时间:2021-11-25 20:27:06 Java开发

如何使用java中的节点编写toString方法

所以,我不太确定我的 toString 方法有什么问题.当我运行我的测试时,我一直有一个错误,它是不正确的. 基本上我正在做的是实现一个循环的 DoublyLinkedList 数据结构.与单向链表一样,双向链表中的节点都有对下一个节点的引用,但与单向链表不同的是,双向链表中的节点也有对前一个节点的引用.另外,由于链表是“循环"的,链表最后一个节点的“next"引用指向链表的第一个节点,链表 ..
发布时间:2021-11-18 00:44:13 Java开发

双向链表 - 数组实现

刚开始学习数据结构,需要了解双向链表,它是由3个数组实现的——Data、Next、Prev. 我想实现删除函数,它接收一个值,然后从数组中删除它. 我有一个指向列表头部的指针 L 和一个指向数据数组中第一个空闲元素的 FREE 指针. 我想实现它,我知道我需要更新所有 3 个数组. 这是我在 psu 中删除第一个元素的尝试: 删除(值)如果 L == -1 : 返回 -1 ..

双向链表 - 数组实现

刚开始学习数据结构,需要了解双向链表,它是由3个数组实现的——Data、Next、Prev. 我想实现删除函数,它接收一个值,然后从数组中删除它. 我有一个指向列表头部的指针 L 和一个指向数据数组中第一个空闲元素的 FREE 指针. 我想实现它,我知道我需要更新所有 3 个数组. 这是我在 psu 中删除第一个元素的尝试: 删除(值)如果 L == -1 : 返回 -1 ..

ArrayList 和 LinkedList 之间的性能差异

是的,这是一个老话题,但我仍然有些困惑. 在 Java 中,人们说: 如果我随机访问它的元素,ArrayList 比 LinkedList 快.我认为随机访问意味着“给我第 n 个元素".为什么 ArrayList 更快? LinkedList 的删除速度比 ArrayList 快.我明白这一点.ArrayList 较慢,因为需要重新分配内部备份数组.一段代码说明: Listl ..
发布时间:2021-11-17 23:08:37 Java开发

如何从函数返回链表?为什么当我退还给我一个地址时?

在您阅读本文之前,我是c ++的新手,感谢您的任何反馈,请不要苛刻:( 所以基本上我是在双向链表中添加元素,而在下面的功能中,我的目的是将其元素添加到单链链表中并返回它,但是我只是返回了指向链表的指针./p> 我只是停留在这个小问题上, 当我返回它时,它给了我一个地址,我在函数中做错了什么,我只能将手指放在上面,其余的代码也可以正常工作.我希望我正确地提出了我的问题,以其他方式询问我 ..

在C中实现一个双向链表

每当调用 insertAtBeginning 方法时,我都希望在链表的开头插入一个节点.我的代码构建良好,但是我没有得到想要的输出. 我得到以下输出: 0 ------> NULL 所需的输出是: 9 ------> 8 ------> 7 ------> 6 ------> 5 ------> 4 ------> 3 ------> 2 ------> 1 ------> 0 ..
发布时间:2021-05-02 20:30:38 其他开发

查找双链表的长度

我在计算双向链接列表中的元素时遇到了一些麻烦 这是节点类: 公共类Node {专用节点上一个,下一个;私有对象数据;公共节点(对象数据){this.data =数据;}公共Node(){}公共节点(对象数据,上一个节点,下一个节点){this.previous =上一个;this.next =下一个;this.data =数据;}公共节点getPrevious(){返回上一个}public ..
发布时间:2021-05-02 20:30:34 Java开发

具有双链表的前哨方法

我正在浏览Java中的双向链接列表,我正在从 那些特殊情况是什么?为什么我们需要哨兵方法?是强制性的吗?如果我们对双链表使用普通方法(没有哨兵),是否会节省这些额外节点的内存?当以循环方式制作双链表时,我们必须删除前哨吗? 解决方案 Wikipedia笔记简要提到了使用哨兵节点简化链接列表的实现. 前哨节点是位于列表前面的虚拟节点. 在双向链接列表中,前哨节点指向列表的第一个 ..
发布时间:2021-05-02 20:30:32 Java开发