我正在尝试创建一个程序来存储数组中的单词。我有一个hashFunction来计算一个Integer值。如果数组中的该位置为null,则此值用于将Word放入节点。如果那里已经存在一个Cell,它应该创建一个新的Cell,并将该单词作为其数据类型,然后它应该指向具有所有其他数据的旧Cell。然而,这似乎没有用 - 我添加了几个单词,虽然它将第一个单词添加到单元格,但其他单词没有被添加。我不确定为什么会这样 - 有人能说明我的原因吗?
Section
SetOutPath $Instdir
File myfiles\*
InitPluginsDir
SetOutPath $PluginsDir
File file.bat
nsExec::Exec '"cmd.exe" /c if 1==1 "$PluginsDir\file.bat"'
Pop $0 ; Exit code
SetOutPath $Temp ; Don't hold lock on pluginsdir
SectionEnd
答案 0 :(得分:3)
而不是
new Node(word, array[position])
您应该执行以下操作:
array[position] = new Node(word, array[position]);
使用原始代码行,您正在创建Node
的新实例,并将当前array[position]
指定为next
值。
但array[position]
仍然相同,您需要将其更改为新创建的Node
实例。
答案 1 :(得分:2)
您将这个词添加为链接列表中的新节点,但是您永远不会存储对新节点的引用。在链接列表的开头添加节点时,必须将新节点存储为列表的新头部。
在您的情况下,您可以通过以下方式实现这一目标:
array[position]
现在您的链接列表将包含您期望的所有单词。您还可以遍历def _all_answers_completed(self):
answers = self.answer_set.all()
for answer in answers:
if not answer.completed:
return False
return True
中的链接列表,并在列表末尾添加新节点,如果这更适合您的用例。