问题标签 [singly-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 投票
5 回答
226 浏览

c - 删除具有重复数据的项目

我正在编写一个删除具有重复数据的连续项目的函数。eg 例如,传入列表

->a->b->c->c->a->b->b->b->a->null

应该导致

->a->b->c->a->b->a->null

列表项定义和函数声明如下

Mo代码看起来像

这是实现预期结果的正确方法吗?

0 投票
4 回答
7312 浏览

c - C中循环单链表的优雅实现?

遍历经典数据结构并停在链表上。刚刚实现了一个循环单链表,但我的印象是这个列表可以用更优雅的方式表达,特别是 remove_node 函数。考虑到效率和代码可读性,有人可以为单链循环列表提供更简洁有效的解决方案吗?

0 投票
2 回答
212 浏览

c++ - 琐碎的单链表查询

链表类的 addToHead 函数不能正常工作。该功能似乎正在更换头部。帮助。请。

0 投票
1 回答
1270 浏览

c - 单链表插入同步

假设我有一个N个不包含重复项的整数的排序单链表和k个线程(其中k << N),每个线程都试图将一些整数(大于头节点)插入到列表中。

是否可以将插入同步到这样的列表中,以便:

  • 线程只能阻止对其(立即)前一个节点的访问
    (不锁定“整个列表”)
  • 最多可以使用 O(k) 个互斥锁和条件变量
  • 不会发生抢占/中断

?

0 投票
3 回答
4300 浏览

insertion - 单链表上的插入排序

我是否认为不可能对单链表执行插入排序?

我的推理:假设insertion sort根据定义,当我们在外循环中向右移动时,我们在内循环中向左移动并根据需要向上(向右)移动值,并在完成后插入我们的当前值内循环。因此,SLL 无法适应这样的算法。正确的?

0 投票
4 回答
7410 浏览

java - 单链表上的快速排序

我的快速排序不起作用。我特别不确定要传递给分区算法的内容以及如何管理枢轴,因为在一种情况下它成为头节点,在另一种情况下成为最后一个节点。我的方法基于数​​组的解决方案。这是我的尝试。有任何想法吗?请注意,选择分区算法是为了适应单向链表 (SLL) 的单向特性。

[编辑]

  • 我想“就地”做这个

  • 我正在寻找有关如何在此过程中管理头部和尾部的帮助。

  • 请不要提出替代方案,除非我的方法是不可能的

0 投票
5 回答
608 浏览

java - java中的单链表

在下面的代码中,我试图理解insertFirst()方法中的一件事

为什么是最后一个陈述first =newLink;而不是first.next=new Link; 它会错吗?一开始不是有“下一个”吗?

我知道这段代码是正确的,我知道需要在开头插入一个节点,但我需要帮助理解一个语句。

是不是first =newLink;first.next=new Link;不一样的东西?

0 投票
3 回答
232 浏览

c - 堆栈问题

我正在开始我的堆栈代码,但这是一个问题

我的代码有什么问题?

这就是问题

void*它声明从到的无效转换StackNode*

编译,看看它是否会工作

我该如何解决?我应该编辑什么?

0 投票
3 回答
3547 浏览

java - 为链表创建 equals 和 hashcode 方法

我的任务应该是使用单链表(节点)从列表和链表中实现某些方法。

我想知道如何使用它来实现equals方法和hashcode方法,equals方法比较两个列表,但我不确定它如何转换为节点,它会创建两个节点列表吗?还是一个接一个,我将如何创建测试相等性的方法?

}

public void removeNode(Node node){ if(size == 0) head = null; else{ if(node == head){ head = node.next; node.next.previous = null; } else{ node.next.previous = node.previous; node.previous.next = node.next; } } size--; }

public Node findNode(int index){ Node myNode; myNode = head; while( index-- > 0) myNode = myNode.next; return myNode; }

public List12() { head = null; size = 0; }

这只是我的节点及其方法的代码,我已经实现了其他方法,但我不知道 equal 和 hashcode 方法。谢谢你的帮助。

0 投票
2 回答
1733 浏览

c++ - 单链表c ++上的简单插入排序

目前,我不担心效率,我只是在学习。我想知道是否有人可以帮助我学习一个简单的单链表插入排序。这是我的作业,所以我想了解它。这是代码:

到目前为止,我已将它读入 istream,因此我需要在读入时对其进行排序。节点是一个结构 btw。有人可以帮我吗?