几年后我正在重新学习编程,目前我正专注于C#和Lua.我为Lua使用的这本书有一个链接列表的例子,但我很难理解它是如何工作的. list = nilfor line in io.lines() do list = {next = list, value = line}end 如
list = nil for line in io.lines() do list = {next = list, value = line} end
如果我正在读这个
>它正在创建一个新表
>将列表分配给该表,设置“下一个”键/标识符(正确的术语?)以指向列表(在第一个创建的表的点处仍为零)
>然后将“值”键/标识符设置为读入的内容
>然后“list”现在实际上指向新创建的表
然后在循环的下一个运行
>创建下一个表
>将“next”键/标识符设置为指向列表(现在指向以前创建的表)
>然后将“值”键/标识符设置为读入的内容
>然后“list”现在实际上再次指向新创建的表
我只是想确定我究竟是如何工作的,因为它似乎有点奇怪/奇怪的是,列表正在尝试创建一个表并指向它在执行完成的行和列表之前当前指向的任何内容更新为指向最新创建的表.
还是我离开这里?
这有点类似于LIFO链接列表在其他语言中的含义(如 c或 c++).是的,你正确地关注它.假设我的输入是:(按相同的顺序)
> 21
>嗨
> 35
>不
然后,我的列表创建为:
list = { value = "No", next = { value = 35, next = { value = "Hi", next = { value = 21 next = nil } } } }