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

c - 从 C 上的文本文件创建双向链表

我必须从一个文本文件中创建一个双向链表,其中每一行都有时间和温度。例如每一行是这样的:12:48 23.69

所以我无法将数据放入双向链表。我不知道如何实现它。所以我做了一个元素的 typedef 结构的数组,并希望我可以从数组的第一个元素开始,然后将下一个指向数组的第二个元素。这就是我所拥有的...

所以这是我的双向链表头文件:

`

这是我的主文件:

0 投票
1 回答
181 浏览

java - 为什么要从我的 LinkedList 中删除所有元素?

为什么我的 remove 方法要从我的双向链表中删除每个元素?如果我取出 if/else 语句,那么我可以成功删除中间元素,但列表头部或尾部的元素仍然存在。但是,我添加了 if/else 语句来处理头部和尾部的元素,不幸的是,这个方法现在删除了我列表中的每个元素。我做错了什么?

我测试我的方法的主要课程是:

我运行程序后打印出来的结果是:

0 投票
1 回答
98 浏览

java - “MyLinkedList”方法中的 NPE

我在扩展 AbstractList 的 MyLinkedList 类中遇到了 NPE 的一些问题。我从这些构造函数开始:

私有 Node 类的构造函数:

MyLinkedList 类的构造函数

在这里我尝试使用这种方法在索引处返回节点:

我认为主要问题与将头部和尾部初始化为空有关,但我不确定这是否是问题,如果是,如何解决。有没有更好的方法来初始化这些节点以避免 NPE?

0 投票
1 回答
1500 浏览

c - 交换双链表中的两个节点

我必须编写一个程序,该程序基本上会对链表中的节点进行排序。我有 5 个函数需要为此作业编写,但我被困在其中一个函数上。我遇到问题的功能是交换两个节点。该函数的标头如下:

只要两个节点不相邻,我就可以正常工作。我们有一个提供给我们的 list.h 文件,我们应该使用两个函数evictNode(struct lnode** head, struct lnode* node)void insertNode (struct lnode** head, struct lnode* prevNode, struct lnode* nodeToBeInserted). 这些函数也处理nextprevious指针的重新分配。如果它们彼此相邻,我只是不完全确定如何交换节点。我试过把它画出来,但我无法把它包起来。

哦,顺便说一句,我处理其余节点的方式是使用以下代码:

编辑:尝试

其中struct lnode* n1prev = nodeGetPrev(n1) 有两个函数返回上一个/下一个指针

0 投票
3 回答
7952 浏览

c++ - 在双向链表尾部插入

我第一次使用链表,必须创建一个可以在双向链表末尾插入节点的函数。到目前为止我有

Node 类接受要存储的值、要指向的下一个指针的值以及按该顺序指向的前一个指针的值。每当我尝试在此处插入节点时,都会收到一条错误消息,提示存在未处理的异常,并且在写入位置 0x00000008 时存在访问冲突。

我不完全确定这里出了什么问题,但我认为这与根据错误消息取消引用空指针有关。我真的很感激解决这个问题的一些帮助。

编辑:

我应该早点澄清,tail 是指向列表中最后一个节点的指针。Tail->next 访问最后一个节点的下一个变量,在函数运行之前,它指向 NULL,但在它执行之后应该指向创建的新节点。

0 投票
2 回答
1100 浏览

java - 我收到两个 NullPointerExceptions,但不知道如何解决

我正在制作一个包含向量的双向链接循环列表,但我无法弄清楚如何修复我得到的两个 NullPointerExceptions。它们都与我的 add 方法一起使用,一个 add 方法在列表末尾插入一个对象,另一个在给定索引处插入对象。这是我有问题的代码。

}

我得到的两个错误是:

  1. 在 DListNodeDriver.main(DListNodeDriver.java:7) 的 DList.add(DList.java:102) 的 DList$DListNode.access$0(DList.java:29) 的线程“main”java.lang.NullPointerException 中的异常

  2. DList$DListNode.access$1(DList.java:30) 处 DListNodeDriver.main(DListNodeDriver.java:6) 处 DList.add(DList.java:126) 处的线程“main”java.lang.NullPointerException 中的异常

    谢谢,任何帮助表示赞赏。

主要方法

0 投票
3 回答
3024 浏览

c - 编译错误'未声明的标识符'C

我几乎完成了我的代码,但它给了我这个错误:' curtemp: undeclared identifier'。和' prevtemp: undeclared identifier'和' missing ';' before type'(最后一个错误在“float curtemp = current->temp;”行。我不知道我的代码有什么问题。我试图从双向链表中删除一些元素,当该元素内部的温度比前一个元素的温度高 5 或低 5。

这是我的 .c 文件:

这是我的结构元素文件:

0 投票
2 回答
63 浏览

c - 为什么当我使用这种方法反向时会修改原始的双重链接?

我正在尝试使用迭代方法来反转双向链表,即使我没有使用指向原始列表的指针样式修改的指针,我也对正在修改原始列表的部分感到震惊。

这是我正在使用的反向函数,head是在 main 中声明的局部变量,Node* head = NULL;并且已经填充了一组值。

这就是我在 main 中使用它的方式:

这是我得到的输出:

我无法获得修改原始头节点的部分。

0 投票
1 回答
75 浏览

java - BinarySearchingTree - dll(generic) ,不知何故我的项目无法添加到我的广告中

我在徘徊我做错了什么,有人可以帮助我吗?我正在尝试使用 DDL(双向链表)数据结构制作通用 BST。问题是我的 ADT 已初始化,因为我的isEmpty方法有效,但我的public addNewElementwhich sueprivate insert不起作用。欢迎任何帮助和建议。

界面:

ADT:

类应用

输出:

0 投票
1 回答
2650 浏览

c++ - 在 C++ 中使用 LinkList 处理文件

问题:我正在尝试将双向链接列表的对象写入(二进制写入)文件并从中写入。我必须写入对象的完整内容,然后从文件中加载它,并将其存储到新对象中,以按 FIFO 顺序重新创建列表。我认为我写得正确,但我真的不知道如何从文件中加载(读取)它。

记住:我只是想保存和读取CONTENTS一个节点,&NOT POINTERS.

代码:

添加新书的主要部分。

保存功能将所有数据保存到文件

现在我几乎不知道如何从文件中读取列表,将内容存储到每个节点中并扰乱保存的排列,以 FIFO 顺序重新创建列表。所以我可以稍后打印。我已经练习了很多,去了论坛等,但没有找到任何具体的解决方案。请帮帮我。提前致谢


我努力的一个样本

没有编译时错误。

运行时错误: DobulyList.exe 中 0x00CD8391 处的未处理异常:0xC0000005:访问冲突写入位置 0x00000004。