问题标签 [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 回答
898 浏览

c++ - 将节点添加到双向链表时遇到问题

嗨,我正在尝试制作一个双向链表,将单个数字存储为双向链表的节点,然后将它们加在一起并打印出来以进行家庭作业。我在让它工作时遇到了很多麻烦,并将我的问题追溯到我的添加节点函数,因为它们没有正确更新指针。例如,在 AddToFront() 函数上,我无法理解如何让 prev 指针工作并指向它后面的节点。

我不能使用 STL,必须自己实现 LL,以防有人想知道。谢谢!

编辑:我在 AddToFront() 和 AddToRear() 中分别添加了一行。这是在正确的轨道上吗?

0 投票
2 回答
1914 浏览

java - NullPointerException 与 while 循环使用 compareTo

对于我们的作业,我必须接受Chair对象并将它们添加到DoublyLinkedList我们制作的东西中;它必须按字母顺序排序,如果样式按字母顺序相同,我们按颜色排序

当我尝试通过循环时,我不断得到一个NullPointerException.

这是我将信息放入 DoublyLinkedList 的代码

这是我创建的 DoublyLinkedList 类: class CDoublyLinkedList{ Node first, last;

}

主席班:

有人可以向我解释为什么我不断收到此错误吗?谢谢!

编辑:

EDIT2:解决了!

我将while循环更改为:

我收到错误的原因是因为我没有检查null每次迭代。

0 投票
3 回答
8755 浏览

haskell - 如何实现双向链表

是否有可能在 Haskell 中有一个双向链表,实现它们的理想解决方案是什么?我正在实现一个场景图,其中每个小部件都有一个父级和一个子级,向上和向下查看图形是有益的。

0 投票
1 回答
238 浏览

c - 双链表正确打印所有内容,但在打印功能结束时收到分段错误

好的,所以我几乎完成了我的最终项目的这个程序,我收到了一个分段错误......该程序将正确执行所有操作,它会将所有内容打印到屏幕上,但是它不会退出该printWordLength()功能。最后打印分段错误,我确定这是一个简单的修复,但我的大脑此时正在崩溃。(向下滚动到最底部以获取罪魁祸首打印功能。

如果您只想使用我的代码,请随意。

目的:该程序包含一个双向链表,它将读取作为命令行参数输入的文件,从文件中读取每一行,从行中标记每个单词,并且每个单词将根据其长度将其放入 Word Length 结构中然后将其放入依赖于单词字符串的 word_count 结构中,并计算每个单词在文件中的出现次数。

在为 .添加 while 循环之前,我没有收到分段错误tempWORD。但是我的大脑放屁时刻是我不知道这个问题。也许是指针问题?

0 投票
1 回答
3223 浏览

c - C 带结构的双向链表

我正在做一个双向链表。据我所知,它正在工作,但来到这里是为了确保并查看我是否以正确的方式进行操作。

另一方面,当我做这个时,我遇到了其他与双向链表无关但与 C 文件之间的结构和“可见性”有关的问题。如果您了解我应该对这两个其他疑问提出其他问题,请告诉。否则请随时启发我。

在我的 file1.c 我有这个:

代码

在我的 file2.c 我有这个

代码

所以这是我的树问题:

Q1 - 这是实现一个头和尾分别指向列表开头和结尾的双向链表的正确方法吗?

Q2 - 为什么要在我的两个文件上声明struct teamstruct nodeTeam?既然它们都在同一个项目中,那么声明不应该对我项目中的所有文件“可见”吗?

Q3 -struct team为什么我必须申报char *name而不是char name[31]

0 投票
1 回答
622 浏览

doubly-linked-list - 双向链表的排序列表。

请帮助我插入方法。我想在双向链表中插入一个值大于该 int 的 int。然后新的 int 将替换双向链表中更大的值(我得到了很好的工作)。但现在我希望更大的 int 出现在列表中并在适当的地方插入。

如果我说 insert 2 4 6 8 ,它会起作用(结果:2 4 6 8)如果我然后插入 1(小于 2)

结果将是 1 4 6 8 2

问题是,当我插入让我们说 7(大于 6,但小于 8)时,我不知道如何向下行并在适当的地方插入。

public void insert(int newInt) { Cell newCell = new Cell (newInt);

0 投票
11 回答
131917 浏览

java - ArrayList 和 LinkedList 之间的性能差异

是的,这是一个老话题,但我仍然有些困惑。

在 Java 中,人们说:

  1. 如果我随机访问它的元素,ArrayList 比 LinkedList 快。我认为随机访问意味着“给我第 n 个元素”。为什么 ArrayList 更快?

  2. LinkedList 的删除速度比 ArrayList 快。我理解这一点。ArrayList 的速度较慢,因为需要重新分配内部备份数组。代码说明:

    /li>
  3. LinkedList 的插入速度比 ArrayList 快。这里的插入是什么意思?如果是指将一些元素往回移动,然后将元素放在中间的空白处,ArrayList 应该比 LinkedList 慢。如果插入只意味着一个 add(Object) 操作,这怎么可能慢?

0 投票
1 回答
177 浏览

c - C 双向链表变量未正确更新

我在使用双向链表时遇到问题,所以我有两个问题。

首先,描述。

我是struct这样制作的:

并以这种方式创建了我的列表:

所以,我的清单会有一个head和一个tail。当我将一些添加Team到我的列表中时,我head int numberOfTeams;将拥有我列表中的团队数量。tail将包含我列表的最后一个元素,int numberOfTeams;之后head将包含TeamID。

我的列表将以这种方式创建:

这是创建列表的代码:

在我的列表中添加(按团队名称排序)a 的代码Team是这样的:

在我的 .txt 文件中,我有以下数据:

这就是输出。

通过此输出,我可以看到我的团队正在按名称排序添加到我的列表中。我打印内存地址的调试显示一切正常。问题在于团队 ID。它的int numberOfTeams;

所以,最后在所有这些文本之后,这些是我的问题:

问题 1如何解决我的团队 ID,即在Team我的列表中插入新的 ID 后,ID 更新为正确的 ID。

问题 2虽然我addNodeTeamsSorted正在使用 ID exeption,但我相信它是“不稳定的”。你能推荐一些优化吗?

谢谢

0 投票
3 回答
1402 浏览

c++ - 如何实现双向链表?

我们在课堂上学习了如何实现单链表。我们的教授有点提到我们做双向链表,但显然它很容易,以至于他真的没有详细解释如何做。我真的很擅长使用单链表,但是有人可以告诉我如何制作双链表吗?

0 投票
3 回答
372 浏览

c++ - c++ 具有空对象模型的双向链表

我正在尝试使用空对象模型创建一个双向链表。到目前为止,我已经实现了将节点添加到列表开头的方法和显示节点的方法。我的问题是显示功能总是显示0。谁能指出我哪里出了问题以及如何解决?另外,我在这里正确实现空对象模型是否正确?

注意:这是一个学校作业。请不要在没有解释的情况下发布解决方案。我想学习和理解这里发生了什么。

编辑:修复显示问题后,我有另一个:当使用空列表或具有节点的列表调用 getHead() 或 getTail() 时,它一直想使用节点类中的 self(),而不是 nullNode 类(在空列表的情况下)或 elementNode 类(在具有节点的列表的情况下)。我被困在如何解决这个问题上。

如果我打印出 container.getNext() 和 container 的地址(对于一个空列表),两个地址是相同的,所以不应该将 ->self() 添加到最后调用 nullNode 类中的 self() 方法吗?