问题标签 [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 投票
8 回答
60752 浏览

linked-list - 单链表和双链表中节点删除的时间复杂度

为什么双向链表中节点删除的时间复杂度(O(1))比单链表中节点删除时间复杂度(O(n))快?

0 投票
1 回答
1684 浏览

c++ - 双循环链表。新节点未插入。C++

所以这个新节点应该插入到最后一个节点之后。我无法弄清楚为什么没有发生这种情况。注意:该列表在调用此函数之前有多个元素(大约 5 个),因此到目前为止它只适用于这种情况。最后一个节点应该指向顶部节点,top->prev 指针应该指向最后一个节点。我哪里出错了?顺便说一句,我假设它是错误的,因为当调用 print 函数时,最后一个节点永远不会打印

0 投票
1 回答
327 浏览

c - 双链表的问题

所以我得到了这个任务来制作一个程序,它允许用户在一个双链表中输入一些整数元素,我必须删除那些可以用它们的数字之和除的那些(余数为 0)。

问题是,在deletedividable(list)之后;函数调用,调用第二个打印列表时没有打印任何内容,我似乎无法找到问题所在,某些指针一定是搞砸了,但我不确定哪些指针。任何帮助将非常感激。

0 投票
4 回答
1462 浏览

doubly-linked-list - 双向链表,在引擎盖下

假设您有 2 个课程:

main创建了一堆节点,他们对自己有所了解,例如他们的名字,然后add(Node*)调用DLL.

为了跟踪这些Node指针,(我认为)DLL应该维护它们的数组。有没有办法避免它?(或与此相关的任何其他数据结构)

如何DLL在引擎盖下实现?它使用数组还是其他东西?

0 投票
2 回答
515 浏览

java - 双向链表混淆

在我的课堂上,我有一项任务是创建一个 Number 类,该类具有算术运算。(加/减/乘/等)

我对其中一个部分感到困惑——双向链表。规范中唯一讨论它的部分我觉得有点混乱。我不知道我应该存储什么 - 输入的所有数字?它表示高位数字节点的高点......我不知道那是什么意思。另外,我不确定我将如何实现双向链表......只是参考下一个“高位数字”?

还 - 什么是Node?作业只说我要创建class Number...但是 Java API 中的节点说它与 HTML 标签有关?我不应该使用Number low, high???

以下是详细说明双向链表部分的规范部分:

数字将存储在双向链表中(此处不要使用泛型)。每个节点都有一个 int 值字段,该字段将保存一个数字(0 到 9)和两个指针字段 prev 和 next。

high 指向高位数字的节点,low 指向低位数字的节点,digitCount 是存储在列表中的位数,decimalPlaces 是小数位后的位数(节点),负号表示符号。

我不是要求一个确切的解决方案,只是一些指导和理解。我真的很感激给予的任何帮助。

0 投票
5 回答
1647 浏览

c++ - 双向链表无限循环?

如果我要创建一个节点类,如下所示,并且如果它用于双向链表,它会在解构双向链表时创建一个无限循环吗?或者它会很好地终止吗?

编辑:如果我将代码修改为这样,它会工作吗?

编辑2:或者这会最有效吗?

0 投票
3 回答
3515 浏览

algorithm - 将已排序的双向链表转换为 BST

如何将排序的双向链表转换为平衡的二叉搜索树。

我正在考虑以与将数组转换为平衡 BST 相同的方式执行此操作。找到中心,然后递归转换DLL的左边部分和右边部分。例如,

1 2 3 4 5=> 1 2 (3) 4 5 =>

这导致递归 T(n) = 2T(n/2) + O(n)。O(n) 用于寻找中心。因此时间复杂度为 O(nlogn)。我想知道是否有一种算法可以在 O(n) 中执行此操作。

0 投票
3 回答
8449 浏览

java - 插入双向链表

我在喜欢列表中添加元素时遇到问题

我的问题是当我运行时:

它只显示“2”“显示”方法,只是看不到最后添加的元素。
但是如果我运行:

它将显示两者。它有什么问题?谢谢。

0 投票
4 回答
197 浏览

c++ - 双向链表 - 是什么导致我的代码引发编译器错误,我该如何解决?

我一直在研究双向链表代码,每次尝试编译时都无法找到导致错误的原因。抛出的错误是

main.obj:错误 LNK2019:函数 >_main 1>Doubly List.exe 中引用的未解析外部符号“public:__thiscall DoublyList::DoublyList(void)”(??0?$DoublyList@H@@QAE@XZ):致命错误 LNK1120:1 未解决的外部

DoublyList.h -> http://pastebin.com/5wbeKksv
DoublyListNode.h 和 main.cpp -> http://pastebin.com/vVdGpgaW

0 投票
1 回答
4280 浏览

sorting - 双链表:按升序对节点进行排序

我正在开发一个使用双向链表的程序。我已经获得了插入节点、删除节点、从节点检索值、显示列表、输出列表大小、判断列表是否为空以及删除所有节点的功能。

我遇到的问题是以升序对值进行排序,并找到某个值所在的节点。

我明天要去帮助实验室,我只是想在那之前看看是否有人可以提供帮助。

我不知道如何处理 sort()。我的 find() 有点工作,但是当我要求它找到一个值的节点时,它只返回我输入的值。

编辑: deleteAll() 现在可以正常工作了!

任何帮助,将不胜感激。我知道如果您不想在这两件事上都提供帮助,那么只需获得我即将完成的那一项(find())就太棒了!

谢谢。