第一版是为 Lua 5.0 编写的。虽然在很大程度上仍然适用于后续版本,但有一些差异。
第四版针对 Lua 5.3,可在 Amazon 和其他书店购买。
购买本书,您还可以帮助支持 Lua 项目


11.3 – 链表

由于表是动态实体,因此在 Lua 中实现链表非常容易。每个节点都由一个表表示,链接只是包含对其他表的引用的表字段。例如,要实现一个基本列表,其中每个节点有两个字段,nextvalue,我们需要一个变量作为列表根

    list = nil
要在列表开头插入一个元素,其值为 v,我们执行
    list = {next = list, value = v}
要遍历列表,我们编写
    local l = list
    while l do
      print(l.value)
      l = l.next
    end

其他类型的列表,例如双向链表或循环链表,也可以轻松实现。但是,在 Lua 中很少需要这些结构,因为通常有更简单的方法来表示数据而不使用列表。例如,我们可以用一个(无界)数组表示一个堆栈,其中一个字段 n 指向顶部。