问题标签 [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.
c++ - I am creating a doubly linked list that will alphabetize a list of names, but I am unsure of what to put in the int main( ) function
Ultimately, the program will print out a list of names in alphabetical order, along with additional attributes associated with that name. In other words, the output screen will read as follows:
Again, the first names are alphabetized in this list, but attributes are printed alongside them. With regards to my int main( ), I'm not sure how I should begin sorting these names and putting them in order. I have an unsorted list that must be sorted (using functions that add/insert these names into the correct order).
algorithm - 为什么使用双向链表删除哈希表的元素是 O(1)?
在 CLRS 的教科书“Introduction to Algorithm”中,pg 有这样一段。258.
如果列表是双向链接的,我们可以在 O(1) 时间内删除一个元素。(注意,CHAINED-HASH-DELETE 将元素 x 而不是它的键 k 作为输入,这样我们就不必先搜索 x。如果哈希表支持删除,那么它的链表应该是双向链接的,这样我们可以快速删除一个项目。如果列表只是单链接的,那么要删除元素 x,我们首先必须在列表中找到 x,以便我们可以更新 x 的前任的下一个属性。对于单链接列表,既删除并且搜索将具有相同的渐近运行时间)。
令我困惑的是这个大括号,我无法理解它的逻辑。使用双向链表,仍然需要找到 x 才能删除它,这与单链表有什么不同?请帮助我理解它!
c++ - 双向链表的奇怪复制构造函数
请注意我的作业标签。与所有家庭作业一样,对于直接回答实际编码的有用建议表示赞赏。不过,请随意直接回答我的任何概念性问题。
你好,
我的教授为我们分配了一个双向链接的家庭作业列表,在我绝对需要它之前,我一直避免寻求帮助,我就在这里。
他为我们提供了头文件,然后我们必须为其创建一个类,并且必须完美地遵循头文件。他执行复制构造函数的方式是让我们编写一个辅助函数,我们只需调用复制构造函数。
在正常情况下,我可以很容易地做到这一点,但这次他给了我们一个非常奇怪的辅助函数签名:
这是复制一个名为 Elems 的结构链:
我想我对整个 Elem *& 业务感到困惑,因为据我所知,不要 & 和 * 相互抵消?
谢谢,任何和所有的帮助都非常感谢!希望这将有助于将来在我的位置上的其他人:)
c++ - 双链表出现错误“未分配指针”
我创建了一个双链表类,并试图将它与我创建的 Vector 类一起使用,以制作链表的向量,但是在程序结束时,我似乎遇到了一个错误
malloc: *** error for object 0x100100be0: pointer being freed was not allocated
,我假设有与析构函数有关,这也是 Xcode 指向我的地方。我该如何规避这个?我认为我的析构函数工作正常,但我想我错了。
测试文件:
双LL.h:
该错误似乎来自 doubleLL,因此未包含 Vector.h。如果需要帮助我指出正确的方向,请告诉我。
谢谢!
c - 从单链表和双链表中删除随机节点
我很难想出从双链表和单链表中删除某些节点的逻辑。我从帮助中在线查看,但我找不到一个简单的例子。这是我所拥有的:
双链删除。dCurrent
是我们要删除的节点。
这是我所拥有的单链表。同样,sCurrent
是要删除的节点。和sPrev = sCurrent->prev
。
问题是,在我从两个列表中删除一组随机节点后,双向链表从头到尾正确显示,但不是从尾到头显示。单链表也不能正确显示。
c - 为什么我的双向链表的 C 实现会创建重复值?
我在 C 中为双向链表实现进行了编码。在那里,在插入值之后,我得到了重复值。即我给出的最后一个值在所有列表项中重复。
我的代码如下
头文件.h
double_list_insert.c
double_list_traverse.c
而且,这里是主文件,
主程序
在执行过程中,它会正确地从我这里获得输入,如果我首先或最后只插入一个数据。
但如果我插入第二个,问题就来了。就我而言, id 值保持不变。但是第二个输入的名称值在第一个值中重复。
为什么会这样?传递论点有什么问题吗?
list - DoubleLinkedList 项目:示例输入
我目前正在我的大学 Java 课程中从事双向链表项目。我了解双向链表、链表和列表的概念。但是,我在编写程序时遇到了很多麻烦,因为我不确定如何创建需要在我的方法中修改的数据。我们的教授通常会向我们提供他将使用的输入,但这次没有,而且我似乎无法在我的研究中弄清楚。
我想我的主要问题是任何人都可以为我编写一些代码来开始使用并开始了解我的方法需要做得更好吗?
这是我到目前为止所拥有的。(基本上只是覆盖骨架..)
非常感谢您的帮助。
}
java - 为双链表添加节点方法?
我目前有这个,但我想把我的列表变成一个双链表,不知道该怎么做。
doubly-linked-list - 使用双向链表的排序算法
我必须使用双向链表实现四种排序算法(插入、选择、Shell、Quicksort)作为作业,但我完全迷失了,因为我在网上找到的所有排序算法的解释都需要使用数组。我尝试将此代码用作我的 DLL 的伪索引:
但这还不够,因为它不是二传手。任何想法男孩/女孩?
java - 在 Java 中扩展 LinkedList 的 DoublyLinkedList 类的正确实现是什么?
我有自己的自定义LinkedList
类,它有一个指向Node
列表中第一个的指针。我现在需要创建一个DoublyLinkedList
类。DoublyLinkedList
the和 the之间的唯一区别LinkedList
是DoublyLinkedList
使用DoubleNode
s 而不是Node
s。我的DoubleNode
班级扩展了Node
班级。
创建扩展的正确方法是什么?DoublyLinkedList
LinkedList
是否必须不断地将DoubleNode
s 转换为Node
s?还是有一种我只是想念的更简单的方法?
谢谢你的帮助。