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

c++ - c ++输出和输入单个字符

我正在用 C++ 编写一个程序,它实现了一个双向链表,每个节点中都包含一个字符。我通过附加功能插入字符:

该功能实现如下:

但是,我认为存在一个问题,可能与 C++ 处理字符的方式有关。当我去打印我的列表时,不知何故我从来没有得到我已经附加到我的列表中的要打印的字符。这是我用来打印的:

我只是在打印时得到废话。它打印出我从未添加到列表中的字符——你知道,只是来自内存中某处的字符。这可能是什么原因造成的?

0 投票
4 回答
8584 浏览

java - Java 的 LinkedList 中的 clear() impl

我担心这是一个非常愚蠢的问题,但这里有:

为什么 Java 默认 LinkedList 实现中的 clear 方法会费心遍历列表并解开所有节点?为什么不直接解开标题并让列表的其余部分保持连接 - GC 无论如何都会得到它,不是吗?

这是方法:

为什么走路呢?为什么不直接跳到header.next = header.previous = header;

我能想到的最好的结果是它对 GC 有帮助吗……?这个链接http://java.sun.com/docs/books/performance/1st_edition/html/JPAppGC.fm.html#997442有点暗示。

蒂亚...

0 投票
7 回答
10869 浏览

c# - C# - LinkedList - 如何在指定节点后删除所有节点?

我正在使用通用 LinkedList 实现撤消/重做缓冲区。

在这种状态下:
[Top] state4 (undo
)
state3 (undone)
state2 <-- 当前状态
state1
[bottom]

当我进行推送时,我想删除当前状态之后的所有状态,然后推送新状态。

我目前的旁路是要做的,while (currentState != list.last), list.removeLast();但它很烂

LinkedList 只支持 Remove、RemoveFirst 和 removeLast...

我想要像 RemoveAllNodesAfter(LinkedListNode ...) 这样的东西?

我怎样才能很好地编码,而不遍历所有节点?也许带有扩展名?...

0 投票
9 回答
2069 浏览

algorithm - 如何在网络上的多台计算机上构建分布式健壮链表?

我正在考虑构建一个使用类似算法的raid(磁盘)的程序。如果一台电脑死机。下一个将介入。在它的位置。它需要从 1 到 1000 台计算机进行扩展。

我需要一些建议。

我需要学习的算法的名称是什么?

在某一时刻,我认为可以在 git 之上构建它。

0 投票
32 回答
146614 浏览

collections - 什么是链表的一个实际的、真实的例子?

我了解链表的定义,但它如何表示并与一个共同的概念或项目相关联?

例如,OOP 中的组合(编辑:最初说“继承”)可能与汽车有关。现实生活中的所有(大多数)汽车本质上都是一样的。汽车有一个引擎,你可以启动()它,你可以让汽车去(),停止()等等。汽车通常具有最大载客量,但在公共汽车和跑车之间会有所不同,这两种汽车都是汽车。

是否有一些真实的、直观的简单的 ole' 单链表示例,就像我们在继承中所拥有的那样?典型的教科书链接列表示例显示了一个带有整数的节点和指向下一个的指针,它似乎并不是很有用。

感谢您的意见。

0 投票
2 回答
948 浏览

iphone - 如何使用 Objective-C 有效地从文件中保存/加载链表?

在为 iPhone 学习了 4 周的 Objective-C 之后,我的第一个有用的应用程序几乎完成了。但是,每当当前视图更改时,我仍然需要保存几个实例变量,并在重新打开视图时重新加载它们。

我可以毫无困难地加载具有基本 C 类型(如intBOOL )的变量,但在使用由 Objective-C 对象组成的链表时遇到了困难。

链表由三个指针访问的内存组成:startPointercurrPointerendPointer。每个元素由一个last指针、一个next指针、一个指向嵌套链表 ( nestedPtr ) 的指针和一些变量组成。

我的第一次尝试是在加载代码中执行以下操作:

我在最后放置了一个调试点,所有变量都有正确的值。实际上访问代码中的值(在控制台中这样做)会导致EXC_BAD_ACCESS消息。


接下来,我将链表加载行更改为以下内容:

initPointerFromList方法

现在的问题是指针都指向单独的链表,所以我编写了方法来检索 currPointer 引用的链表的开始和结束位置:


我的问题有三个:

  1. 是否需要使用initPointerFromList等方法为已加载的链表分配内存?
  2. 有没有比使用lastElementfirstElement方法搜索列表更有效的方法来维护currPointerendPointerstartPointer之间的关系?
  3. 我提供的加载代码背后的技术有问题吗?没有它,我没有问题;有了它,我仍然收到BAD_ACCESS消息。我想知道这些消息是否与加载代码有关,或者是否与我在整个应用程序的其余部分中处理对象分配的方式有关。

提前致谢!

0 投票
18 回答
21929 浏览

c# - 什么是应该使用链接列表的真实世界示例?

另一位程序员提到,在他的职业生涯中,他们还没有找到在任何专业软件中使用链表数据结构的用例。我想不出任何好的例子。他主要是 C# 和 Java 开发人员

任何人都可以举一些例子,说明这是解决特定现实世界问题的正确数据结构吗?

相关: 链接列表的实际示例是什么?

0 投票
2 回答
1593 浏览

c - 如何在C中搜索图结构中的特定节点?

并不是说我有时间适当地讨论这个以得出结论并调整我的代码,因为学校项目的第一阶段(第三阶段)是在 24 小时内,但至少我需要知道我是否做出了正确的决定。

我正在使用链表,这是我的结构:

基本上,我有很多城市,这些城市都连接在一起,就像一个图表。例如,A、B、C、D 和 E 它们按此顺序插入到结构City中。然后,我将 A 连接到 B,C 和 D,B 连接到 C,D,E,C 连接到 D,E 和 D 连接到 E。

现在,假设我需要去E市。这是链表中的最后一个,并且需要时间遍历链表。也许不是在这个有 5 个城市的例子中,但在真正的应用程序中,我应该至少支持 10,000 个城市。但是最短的路线是从A(这是起点)从C到E(或者可以是ADE或ABE,没关系)。

我的结构是否允许我找到从 A 到 E 的最短路径,而无需一一遍历整个链表?如果没有,我做错了什么?

如果是,我该怎么做?我不知道我怎么能找到这样的路径......

0 投票
3 回答
12016 浏览

mysql - 在 MySQL 数据库中获取链表

我有一个具有这种结构的 MySQL 数据库表:

我需要按链表的顺序获取数据。例如,给定以下数据:

我需要按顺序获取 id=1、2、4、3、9 的行。如何使用数据库查询来做到这一点?(我可以在客户端做到这一点。我很好奇这是否可以在数据库端完成。因此,说这是不可能的(有足够的证据))。

最好有一个终止点(例如,在 10 次获取后停止,或者当行上的某些条件变为真时),但这不是必需的(可以在客户端完成)。我(希望我)不需要检查循环引用。

0 投票
4 回答
8000 浏览

data-structures - 普通链表、链表和双链表:何时以及为什么?

在什么情况下我应该使用每种列表?各有什么优势?