自引用列表的用途

11

我知道在像Python这样的语言中,可以创建一个自引用列表:

>>> my_list = [1,2]
>>> my_list.append(my_list)
>>> print my_list
[1,2,[...]]
>>> print my_list[0]
1
>>> print my_list[2]
[1,2,[...]]

哪些算法可以从自引用列表中受益?我想不出任何一个。

谢谢。

3个回答

4

当使用数据结构表示图形时,可能会出现自引用列表和循环数据结构。

例如,考虑以下图形的朴素表示:每个节点都是原子值或与之链接的节点列表。圆圈可能导致列表包含另一个包含列表的列表。自循环,即从一个节点到其自身的边,将导致自引用列表。


0

1
具体而言,您所指的可以通过包含自身的列表来简化的问题是什么? - Justin L.
1
感谢您的后续和编辑,但是自引用列表递归提供了什么,尾部递归和自引用方法递归不能做到,并且表达更清晰? - Justin L.
1
递归 != 自我引用 - ruohola

0

如果你只是在询问关于列表方面的问题,那么我现在想不到什么,除了可能以列表模型递归地创建/搜索数据结构。

但是自引用的一个应用可以是这个Python中的自引用类定义


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接