问题标签 [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.
c - 查找大小未知的循环链表的最后一个节点,并且最后一个节点指向链表第一个节点以外的任何其他节点
如何找到我不知道大小的循环链表的最后一个节点,并且最后一个节点指向除链表的第一个节点之外的任何其他节点?
algorithm - 向后打印一个简单的链表,不递归,最多两次,使用恒定的额外内存,保持原样
您必须向后打印一个简单的链表:
- 没有递归
- 具有恒定的额外内存
- 在线性时间内
- 保持列表不变
- 后加 最多两遍
c - 了解C中双向链表中的双指针
我明天要考试,我试图理解教师在课堂网站上放置的这个双向链表示例,但我很难理解它......
这是代码:
这是输出:
我没有得到的是“搜索”功能。传递的列表是一个指向 DL 指针的指针,对吧?我们正在寻找一个数字,因为我们一直在做(*lptr) = (*lptr)->next (或 prev) 来遍历整个列表。我不明白为什么第二次调用 printList() 会打印整个列表...在进行了 search() 调用之后,“列表”不应该只有我们寻找的元素之后的元素吗?指针被改变了,为什么当我们从 search() 返回时指针恢复到第一个元素并打印整个列表?
如果我更改 search() 函数并在第一行添加(*lptr) = NULL ,这就是我没有得到的原因,第二次调用 printList() 将不会打印任何内容,因为指针已更改,它是现在为 NULL,没有什么可打印的。为什么(*lptr) = (*lptr)->next没有类似的效果?指针也被更改为下一个,第二个 printList() 调用不应该只打印列表中的剩余元素吗?
编辑:
每个答案似乎都是正确的,我将按“最旧”对其进行排序并接受“最快”的答案,不要生气,我需要一些标准。我可以继续看看哪个答案可以更好地了解这个问题,但这无关紧要,因为我已经知道所说的一切。我只是愚蠢到甚至不看 printList() 函数并认为它没问题,我还认为错误出现在 search() 函数的某个地方。但我知道我是对的,我知道指针正在改变并且列表无法打印所有内容,但我现在明白为什么......
c++ - 在 C++ 的模板中使用运算符
我正在尝试使用指针实现一个 List 类,并尝试实现一个函数 LOCATE(T x),其中 T 用于模板,如果找到则返回元素 x 的第一个位置,否则返回最后一个位置 + 1。
我的功能代码是
我用 T 作为字符串初始化我的列表
但我收到一条错误消息
'bool std::operator ==(const std::istreambuf_iterator<_Elem,_Traits> &,const std::istreambuf_iterator<_Elem,_Traits> &)' : 无法推导出 'const std::istreambuf_iterator<_Elem 的模板参数, _Traits> &' 来自 'std::string
即使为字符串类定义了“==”运算符,为什么还会出现错误?'
节点的代码是
调用代码是
c# - 复制一个链表
我写了一个创建链表副本的方法。
你们能想出比这更好的方法吗?
algorithm - 如何在不使用任何额外内存的情况下从 unicode 字符的链接列表中消除重复项
“在 unicode 字符的链表中查找重复出现的元素。如果发现一个 unicode 字符/s 有重复,则只需删除该重复节点并调整列表。限制是不使用任何额外的内存。”</p>
我的回答:
假设 unicode char 不包括代理对 char 因为我正在使用 c#
我不知道如何找到重复字符,除非您在遍历列表时知道先前节点的值,并且要维护先前的值,您将需要额外的内存(哈希表)。
小伙伴们,你们能想出什么办法来解决这个问题吗?这是其中一个网站上的面试问题。也有可能在 O(n) 时间内解决这个问题吗?
这是我的实现。你能提供反馈,以便我可以做得更好吗?
c# - 在 C# 中实现链接列表排序的问题
我无法为下面定义的单个列表实现排序算法(合并)我的合并排序方法总是给我 null..我无法弄清楚有什么问题你们能帮帮我吗?
节点类
链表类
我的合并排序代码
我实现了以下辅助方法来实现合并排序
AlternateSplitting:此方法会将列表拆分为 2 个列表
此方法将合并 2 个列表并返回一个新列表
c# - 在链表 C#.NET 中移动项目
我正在尝试移动列表中的项目,但是当我与最后一个选项进行比较时,我在移动移动链接列表中的项目之前退出。有没有办法在节点放在最后并且无法循环移动项目之前做到这一点?
c - 如何编写一个函数来获取任何节点类型的链表并释放它使用的内存?
我相信你们中的一些人已经经历过。我有两个不同类型的链表,我有两个不同的函数来释放它们使用的内存。这两个功能是相同的,除了一件事。
通常,释放列表的函数如下所示:
T
节点类型在哪里。这些功能之间的唯一区别是标记线。
有没有办法编写一个函数/宏来获取指向任何链表头部的指针并释放它?
我尝试了几个想法,但我会从你那里放过它们,因为它们是错误的和失败的,而不是给细节带来负担。