问题标签 [doubly-linked-list]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
16734 浏览

c++ - 在 C++ 中访问列表列表的元素

我有一个这样的列表列表:

我在其中填充了一些带有双精度的列表(实际上很多,这就是我不使用向量的原因。所有这些复制都占用了很多时间。)

假设我想访问可以访问的元素,就像list[3][3]列表不是列表而是向量或二维数组一样。我该怎么做?

我知道访问列表中的元素是通过使用迭代器来完成的。我不知道如何摆脱双重。

0 投票
2 回答
534 浏览

java - 尝试在 Java 中创建双端队列时出现 Nullpointer 异常

我一直在尝试在 Java 中创建一个双端队列,但是当我添加一个新节点时出现空指针异常。这是我用于双向链表的辅助类:

然后我将节点添加到列表的开头,如下所示:

我得到了一条NullPointer例外oldfirst.prev = first;。此外,当我编译代码时,我收到以下警告:

Warning: The field Deque2<Item>.Node.prev is never read locally

我可能做错了什么?

0 投票
1 回答
1651 浏览

c++ - 链表的链表

我正在尝试创建一个包含其他 int 链表的链表,我需要能够从主链表访问 int 链表。

我的问题是如何将主链表的节点指向 int 链表的头部?

我创建了一个静态列表:dlist<Node<int>& > _plist; 我有一个函数:insertToHead ( T const& dataToInsert); 但是从使用链表的类中,我只有指向 head 的指针,类似于 : Node<T>*。当我尝试将 传递Node<T>*给 a时,它给了我一个错误T const&

这是使用链表的类的构造函数:

这是在主列表和 int 链接列表之间建立链接的正确方法吗?

0 投票
1 回答
141 浏览

algorithm - 是双向链表还是 BST

给定一个具有以下结构的节点

我们需要确定该节点是表示循环双向链接列表还是二叉树。在我看来,我们需要开始在一个方向上遍历给定的节点

检测到这一点需要 O(n) 时间。

请建议是否有比这更好的方法。

0 投票
1 回答
2291 浏览

c++ - 双向链表的反向函数

如果我将反向函数发送到列表中,我会得到预期的输出。但是如果我使用我的 reverseNth 函数,我只会得到列表中的第一件事。ReverseNth 按部分反转列表。例如,如果我有一个列表 = <1 2 3 4 5>。调用 reverse() 将输出 <5 4 3 2 1>。在列表中调用 reverseNth(2) 应该给出 <2 1 4 3 5>。

相关代码:

反向代码:

0 投票
1 回答
9573 浏览

java - 冒泡排序双向链表Java

我正在尝试在 Java 中的双向链表上创建冒泡排序,但出现 Null Pointer Exception 错误。我相信当我在头部调用 getPrevious 方法时会出现问题,该方法的值当然为 null。但是,如果不访问其他节点的 getPrevious 方法,我无法考虑如何进行冒泡排序。

我可以实现一个 if 语句来首先检查它是列表的头部还是尾部,但我觉得有一种更聪明的方法可以做到这一点。

我也无法成功运行此构建,因此甚至不确定代码是否可以正常工作。如果您对如何实现这一点有不同的想法,请告诉我。

欢迎任何建议!

0 投票
1 回答
461 浏览

c++ - 如何反转链表的每个 k 元素?

可能重复:
反转链表的每 k 个节点

假设链表是 <1,3,6,4,8,9,0,2>。调用 reversek(3) 将导致 <6,3,1,9,8,4,2,0>。我已经编写了可以用作reversek 中的辅助函数的reverse 函数。这是我的反向函数,它从给定的起点反转到给定的终点:

我对如何实现reversek 感到困惑,感谢任何帮助。

0 投票
1 回答
577 浏览

c++ - 双向链表中的自定义数据类型

我正在尝试在双向链表中使用自定义数据类型。我可以创建列表,但是当我尝试调用插入函数时,它会出错。是什么导致了这个错误?

主.cpp:

doubleLinkedList.h 的插入函数:

该代码适用于整数和字符串,但不适用于“命令”类型。

错误:

0 投票
2 回答
1188 浏览

c++ - 如何向后显示有序的双向链表?

我正在为此苦苦挣扎。我已经让它显示了大部分列表,但是其中一个 1 没有显示出来,而且我终生无法弄清楚如何修复它。

这是相关的代码,我想。

我的插入功能:

我的 displayBackwards 功能:

我的主要功能的相关部分:

我目前的输出是:

0 投票
2 回答
546 浏览

java - 试图删除用户定义的双向链表中特定位置的元素

这是来自一个旧的作业问题,我已经上交了,但我无法弄清楚。我正在尝试使用我的用户定义的类从特定索引处的 LinkedList 中删除一个元素。下面是我正在处理的伪代码,但它没有与我相同的参数,所以我尝试修改它,但有一个问题。我是一个编程菜鸟(大约 6 个月的经验),仅供参考。我理解 ArrayLists 很好,但 LinkedLists 一直给我带来麻烦。

我的方法要求用户输入要删除的索引位置。因为 int 和 LinkEntry 是不同的类型,所以我自然会遇到问题。我不知道如何合并通过参数传递的 int 。

如果您知道任何地方提供了另一个与我要解决的问题更相似的示例,我将不胜感激。我浏览了我的文字和在线,但没有运气。