在最近的Slashdot访谈中, Linus Torvalds给出了一个例子,说明一些人如何以某种方式使用指针,表明他们不知道如何正确使用它们。 不幸的是,由于我是他所谈论的人之一,我也不了解他的例子: 我见过很多人通过跟踪“prev”条目来删除单链表条目,然后删除条目,做类似 if (prev) prev->next = entry->next; else list_head = entry->next; 每当我看到这样的代码,我只是去“这个人不明白指针”。 可悲的是,这很常见。 理解指针的人只是使用“指向入口指针的指针”,并用list_head的地址初始化它。 然后当他们遍历列表,他们可以删除条目,而不使用任何条件,只是做 *pp = entry->next 有人可以提供更多的解释,说明为什么这种方法更好,以及如何在没有条件陈述的情况下工作?
我想看看Java如何实现LinkedList。 我应该去哪里看源代码?
有没有人知道一个algorithm来查找链表是否仅使用两个variables来遍历链表本身。 假设你有一个链接的对象列表,不pipe对象是什么types。 我有一个指针的链接列表中的一个variables的头,我只给了一个其他variables遍历列表。 所以我的计划是比较指针值,看是否有指针是相同的。 名单是有限的大小,但可能是巨大的。 我可以设置两个variables的头部,然后遍历列表与其他variables,总是检查是否等于另一个variables,但是,如果我打了一个循环,我永远不会离开它。 我认为它必须处理不同的遍历列表和比较指针值的速度。 有什么想法吗?
大多数时候,我看到人们尝试使用链表,在我看来,像一个穷人(或非常贫穷)的select。 也许探索一个链表是不是数据结构的好select的情况是有用的。 理想情况下,答案将阐述在select数据结构时使用的标准,以及在特定情况下哪些数据结构可能工作得最好。 编辑:我必须说,不仅数量,而且答案的质量都令我印象深刻。 我只能接受一个,但如果事情好一些的话,还有两三个我不得不说的是值得接受的。 只有一对(尤其是我最终接受的那个)指出了链接列表提供了真正优势的情况。 我认为,史蒂夫·杰索普(Steve Jessop)应该得到某种荣誉提名,不仅提出了一个,而且提出了三个不同的答案,所有这些都给我留下了深刻的印象。 当然,即使它仅作为评论发布,并不是一个答案,但我认为尼尔的博客作品也非常值得一读 – 不仅仅是内容丰富,而且相当有趣。
我知道龟兔会议结束了循环的存在,但是如何在会议场所保持野兔的同时将龟移动到链表的起点,然后又一步一步地让它们在循环的起始点相遇呢?
在python中使用链表最简单的方法是什么? 在scheme中,链接列表由'(1 2 3 4 5)简单定义。 Python的列表[1, 2, 3, 4, 5]和元组(1, 2, 3, 4, 5)实际上不是链表,链表具有一些很好的属性,时间串联,并能够引用它们的不同部分。 让他们不变,他们真的很容易与工作!
我一直只使用一个: List<String> names = new ArrayList<String>(); 我使用接口作为可移植性的types名称,所以当我提出这样的问题时,我可以重写我的代码。 什么时候应该LinkedList使用ArrayList ,反之亦然?