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

python - 长双链表

我的代码有问题。代码给出了一个错误,它说节点在 __add__() 运算符中没有“前一个”,但是它在主程序中没有给出错误分配的重点是创建一个长的使用链表

0 投票
1 回答
3347 浏览

java - Java排序的双向链表添加方法

我在完成一项分配给我的任务时遇到了一些极端困难。

任务是在java中创建4​​种不同的数据结构,LinkedList、DoublyLinked list、deque和sorted doublelinked list。除了 sorted 中的 add 方法外,我几乎拥有所有东西。

我已经尝试了大约 4 个小时不同的事情,每次我这样做时,我得到的测试用例都会失败。

我正在发布我当前的代码,它不能按照我想要的方式工作。如果有人可以通过查看它来判断我需要修复什么,那就太棒了。我还可以将代码发布到其他方法和其他东西。谢谢!

编辑一:

好的,我可以修复演员表的问题,但这对我想要完成的工作没有帮助。对于我的问题含糊不清或不清楚的部分,我深表歉意。有点难以解释。我还得到了很多测试用例,例如这个:

当我为最后一部分执行此操作(使用 system.out.println 而不是 assertEquals)时,我得到: (-12, -12) (0, 0) (32, 5125) (5125, 0) 这不完全对。我只是不确定发生了什么。我无法发布所有尝试过的解决方案,因为我已经删除了大部分。

0 投票
3 回答
381 浏览

c - 这是创建双向链表的有效方法吗?

可能重复:
双向链表创建期间的上下文切换

我正在阅读UNIX 操作系统的设计(莫里斯·巴赫)

他给出了以下双向链表示例。

我无法理解标有1和的语句的目的21似乎错了,2看起来是多余的。

这是创建双向链表的有效方法吗?

0 投票
1 回答
979 浏览

c++ - 实现对象指针的模板化双向链表

我对实现一个双向链表有点困惑,其中列表中的数据是指针。

我的链表类的私有部分如下所示:

如您所见,列表中充满了指向对象的指针,而不仅仅是普通的旧对象,这让我有点困惑。

以下是规范中的描述:

请注意,虽然此列表是跨包含类型 T 模板化的,但它仅插入和删除指向 T 的指针,而不是 T 的实例。这确保 Dlist 实现知道它拥有插入的对象,如果列表,它负责复制它们被复制,如果列表被销毁,它必须销毁它们。

这是我当前的 insertFront(T* o) 实现:

不过,这似乎是错误的。如果 T 没有复制构造函数怎么办?这如何确保列表中对象的唯一所有权?

我可以这样做:

这似乎不安全,因为如果您有:

然后该项目也将被销毁列表。它是否正确?我的理解有问题吗?

谢谢阅读。

注意:虽然这看起来像家庭作业,但事实并非如此。我实际上是一个 java 开发人员,只是通过做一个老派项目来提高我的指针技能。

0 投票
1 回答
656 浏览

java - 在双向链表中按字母顺序排列

我有个疑问:

我创建了以下程序,允许您介绍有关自行车的不同数据。我想做的是,当您介绍自行车的名称然后您想阅读介绍的数据时,程序会按字母顺序显示自行车的名称

这是我的代码

NodoL.java

ListaLigadaD.java

因此,假设我选择选项 #1,即在列表开头插入节点。所以程序要求我介绍一个名字、一种风格和更多的东西。如果没有,我决定按 #2 并在列表末尾插入一个节点,程序会要求我提供与上述相同的信息。

Fianlly 如果我按#3,我可以看到我刚刚介绍的两种自行车,没有按字母顺序排列...

然后我的问题是:如何使用一种方法来订购自行车的名称,以便如果我首先介绍 BMX,然后是 Benotto 作为名称,当我按 #3 显示数据时,我必须先看到 Benoto,然后是 BMX,然后依名称按字母顺序排列?

提前致谢!

0 投票
5 回答
2334 浏览

c++ - 是否应弃用 std::list ?

根据 Bjarne Stroustrup在他的Going Native 2012 主题演讲中的幻灯片,a 中的插入和删除在现代硬件上非常低效:std::list

向量与列表

矢量节拍列表海量用于插入和删除

如果这确实是真的,还剩下什么用例std::list?那不应该弃用吗?

0 投票
1 回答
167 浏览

c++ - 带有模板类的类实例化错误

我无法弄清楚我的程序出了什么问题。我用头文件中的类声明和成员函数声明,一个.cpp文件中的成员函数定义来构造它,然后我在main.cpp中有一个主驱动程序。我已将它们全部放在 ideone 上的一个文件中,以便我可以在此处发布程序:

http://ideone.com/PPZMuJ

ideone上显示的错误确实是我的IDE在构建时显示的错误。有人可以指出我做错了什么吗?

错误是:

你可以忽略 try/catch 子句,我还没有完成那部分的工作——我只是想克服当前的错误。

0 投票
1 回答
5995 浏览

c++ - 初学者:循环单链表的第一个程序,

它只返回一个地址,没有任何调试器错误,尽管我的 DEV C++ 和 Code::Blocks 编译器都显示发送不发送 Windows 错误,但它们只初始化类对象,我已经包含了代码,谁能告诉我为什么会发生

0 投票
1 回答
2045 浏览

c - 如何替换双向链表中的元素

我有三个相同类型的链表节点,schcurr、search 和 schtemp。但是只有搜索有链接。schcurr 和 schtemp 没有链接。我使用搜索来找到我想放置 schcurr 的地方,我使用 schtemp 只是为了帮助我保持链接。如果以下条件成立,则 schcurr 支配搜索。所以,我想用 schcurr 替换搜索。搜索已经在列表中,而 schcurr 尚未连接到任何东西。

我把代码的相关部分如下,但我被困在那里:(

PS:TC1 是 int 和 WF1 是 float 并且它们不是 NULL。

现在我需要更正search.prev 的next 和search.next 的prev。我想我不能设置 search.prev.next=schcurr; 和 seach.next.prev=schcurr; 我可以吗?

任何帮助表示赞赏。

节点信息定义:

0 投票
1 回答
207 浏览

c++ - 删除 std::list 中的项目,同时保持分配状态

我构建了一个std::list定期合并在一起的项目(图形组件结构)。这个想法是,如果我发现一个连接两个组件的节点,它们将成为一个单独的组件,并且我的列表会枚举我的组件。每个组件都有一个std::list<component>::iterator指向其“父”组件的句柄(在本例中为 ),该句柄在合并后设置。通过这种方式确定特定节点所属的组件,我沿着这条链走。

最后,我正在寻找的是std::list允许我获取 item 的迭代器N并将其从列表中删除但不释放它的操作:列表其余部分的结构的修改方式与正常删除它。

最好是比重新分配项目、从列表中复制它并调用真实的removeerase.

也许我可以用splice. 我需要将要删除的元素拼接成“垃圾” list,不是吗?