单链表中的每个节点都是一些数据和指向下一个项的指针(如果它是列表的尾部,则为空指针)。
我所知道的每种具有本机列表类型的语言都支持“空”列表,通常使用一些文字语法。
这将如何在机器的内存中表现出来?
我可以想到几个方法:
语言之间的差异是否很大,或者有标准的方法吗?
答案 0 :(得分:1)
这取决于实施。
我想象一个非常标准的单链表实现如下:
object List
Node head
object Node
Type data
Node next
对于空列表,List.head
将只是一个空指针。
或者,空列表可以是类型为List
的空指针(尽管在某些语言中,这两者之间的差异并不重要)。
您也可以完全摆脱List
,只需将列表定义为Node
,然后空列表可以是:
Node
的空指针(同样不适用于某些语言)Node
data
和next
为空(如果可能的话,可能无法区分具有一个空元素的列表)某些语言可能没有空指针的概念,但您应该可以将其替换为特殊对象。