这是我到目前为止所拥有的。
create {LINKED_LIST[INTEGER]} list.make
from
i := 0
list.start
until
i = 11
loop
list.put(i)
i := i + 1
list.forth
end
调试器指向list.put(i)行。我认为问题在于列表未正确初始化?我在弄清楚如何使用linked_list时遇到了一个问题,因为找不到合适的教程来提供帮助。如您所见,我只是试图编写一个在链接列表中添加数字[0,10]的LINKED_LIST程序。不是学校的项目。只是在即将开始的课程之前练习。请帮忙!
答案 0 :(得分:1)
让我们看一下原始示例中使用的功能的注释:
LIST.put (v: like item)
:用v
替换当前项目。LIST.start
:将光标移到第一位置。LIST.forth
:移至下一个位置。新创建的列表为空。因此,没有可以通过调用put
替换的项目。这说明了调试器为何在功能put
处停止:违反了该功能的先决条件。
查看类LIST
的接口视图,有一个功能子句Element change
,具有以下功能:
append (s: SEQUENCE [G])
:附加s
的副本。extend (v: G)
:添加新出现的v
。fill (other: CONTAINER [G])
:尽可能多地填充other
的项目。force (v: like item)
:在末尾添加v
。put (v: like item)
:用v
替换当前项目。sequence_put (v: like item)
:在末尾添加v
。put_i_th (v: like item; i: INTEGER_32)
:将v
放在第i
的位置。replace (v: G)
:用v
替换当前项目。因为我们正在讨论的是将新元素添加到列表末尾的功能,所以只有以下几种适用:extend
,force
,sequence_put
。在这种情况下,idiomatic feature name是extend
。
考虑到这一点,原始循环变为:
from
i := 0
until
i = 11
loop
list.extend (i)
i := i + 1
end