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

algorithm - O(1) 复杂度删除单个链表中一个元素的算法

我是德国计算机专业的学生。我的教授给出了以下问题来思考:

'给定对单个链表中节点的引用(不是最后一个节点)。给出一个算法从列表中删除这个元素,它具有 O(1) 复杂度,同时保持完整性。

我想过这个,但我很确定,没有这样的算法。因为它是一个单链表,你必须遍历链表中的每个节点,直到你到达应该删除的节点,因为你必须在删除之前修改节点中的下一个指针。这将导致 O(n) 复杂度。

我错过了什么吗?

0 投票
3 回答
11271 浏览

java - 在 LinkedList 中查找元素

如果我有一个 Employee 对象的 LinkedList...

每个员工都有一个姓名和一个 ID 字段。

我有linkedList调用列表....

如果我想查看列表中是否包含员工,我会这样做:

如果我想查看列表是否包含基于员工 ID 的员工,怎么样?

假设我有以下方法:

我如何知道列表是否包含带有参数 id 的员工对象?

0 投票
3 回答
411 浏览

java - 创建数组问题。请帮忙

Dupe: 数组的 Java 泛型语法

我想创建一个数组来保存 Integer 类型的链表。

我收到一条错误消息:无法创建 LinkedList 的通用数组

为什么是这样?能解决吗?

0 投票
6 回答
2964 浏览

c++ - 从头到尾遍历 (C++ LL Q:1)



除了最后一个节点之外没有更多的节点。我怎样才能遍历到前端的尾端?

0 投票
5 回答
1593 浏览

c - 打印会从我的链接列表中删除值

作为作业的一部分,我需要编写两个函数:

  1. 将两个自然数相加的函数,表示为链表
  2. 打印以相同方式表示的数字的函数。

出于某种原因,这两个函数分别工作得很好,但是当我尝试对 sum 函数的结果使用 print 函数时,它会在 print 函数的开头更改 sum 的值,并打印错误的值。当我使用 printf 在 main 中打印相同的值时,没有问题。我的代码在下面详述。有任何想法吗?

这是其余的代码:

0 投票
14 回答
69541 浏览

linked-list - 为什么在链表中间插入 O(1)?

根据关于链表的维基百科文章,在链表中间插入被认为是 O(1)。我认为这将是O(n)。您不需要找到可能在列表末尾附近的节点吗?

这种分析是否没有考虑到节点操作的发现(尽管它是必需的)而只是插入本身?

编辑

与数组相比,链表有几个优点。在列表的特定点插入元素是一个常数时间操作,而在数组中插入可能需要移动一半或更多的元素。

上面的说法对我来说有点误导。如果我错了,请纠正我,但我认为结论应该是:

数组:

  • 找到插入/删除点 O(1)
  • 执行插入/删除 O(n)

链接列表:

  • 找到插入/删除点 O(n)
  • 执行插入/删除 O(1)

我认为唯一不必找到该位置的情况是,如果您保留某种指向它的指针(例如在某些情况下使用头部和尾部)。所以我们不能直截了当地说链表在插入/删除选项中总是优于数组。

0 投票
5 回答
511 浏览

java - 更改 LinkedList 中的参数

我是java新手,所以我遇到了一些“烦人”的问题。我有一个 Employee 类,其中包含一个int idNumber和一个int phone number. 然后我有一个LinkedList<Employee>排序依据idNumber。我想更改某个电话号码idnumber。我一直在使用迭代器,但我不知道我是否做得对,我对此表示怀疑。

是的,我知道employee.setNewPhoneNumber是错的,但我不知道哪种正确的方法可以改变链表上的值。(抱歉英语不好,不是母语人士)

0 投票
3 回答
12563 浏览

c++ - 如何在恒定空间中对单链表进行排序?

我有一个单链表,由于内存限制,我需要在恒定空间中对其进行排序(换句话说,不应使用与列表中项目数成正比的额外空间)。

链表的结构是:

  • head.item=您要排序的有效负载;和
  • head.next= 下一项。

在我建立另一个列表的地方,我需要在原地完成对恒定空间折扣解决方案的要求。

我怎样才能做到这一点?

0 投票
7 回答
2820 浏览

c++ - 带有链表的哈希表中的前 10 个频率

下面的代码将打印它在我的哈希表(其中是一堆链表)中可以找到的最高频率 10 次。我需要我的代码来打印我的哈希表中的前 10 个频率。我不知道该怎么做(代码示例会很棒,简单的英语逻辑/伪代码也很棒)。

  1. 我创建了一个名为“tmp”的临时哈希列表,它指向我的哈希表“hashtable”
  2. 然后一个 while 循环遍历列表并查找最高频率,即 int 'tmp->freq'
  3. 循环将继续使用变量“topfreq”复制它找到的最高频率的过程,直到它到达哈希表上链表的末尾。

我的“节点”是一个由变量“freq”(int)和“word”(128 个字符)组成的结构。当循环没有其他内容可搜索时,它会在屏幕上打印这两个值。

问题是,我无法弄清楚如何从我刚刚找到的数字中找到下一个最小的数字(这可能包括另一个具有相同频率值的节点,所以我必须检查这个词也不一样)。

任何和所有的帮助将不胜感激:)

0 投票
4 回答
16909 浏览

c++ - C++中的链表数组

一些上下文代码:

要求
我必须分析文本,构建链表数组(其中数组包含每个字母的列表;列表包含在文本中找到的每个单词),然后打印出结果。

问题 我无法在 WordTable.cpp 中初始化列表数组。我知道我误解了一些东西,但我没有想法和时间。任何人?

Ps 是的,这是一个家庭作业。请停止给我有关最佳实践的建议... :)