Lua
中用 tables
很容易实现链表,每一个节点是一个 table
,指针是这个表的一个域(field)
,并且指向另一个节点(table)
。在lua中很少用到链表,但是使用table
很容易实现链表。就如同C
语言中,一个table
当做一个节点。每个节点有2个字段,一个字段包含对其他table
的引用,一个字段是当前节点的value
。
代码如下:例如,要实现一个只有两个域:值和指针的基本链表,代码如下: 结果如下 :
其他类型的链表,像
双向链表
和循环链表
类似的也是很容易实现的。然后在 Lua
中在很少情况下才需要这些数据结构,因为通常情况下有更简单的方式来替换链表。比如,我们可以用一个非常大的数组来表示栈,其中一个域 n 指向栈顶。