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,[...]]

哪些算法受益于自引用列表?我想不出一个。

谢谢。

4

3 回答 3

4

当使用数据结构表示图形时,可能会导致自引用列表,以及一般而言的循环数据结构。

例如,考虑一个图的这种简单表示:每个节点要么是一个原子值,要么是它所链接的节点列表。一个圆圈可能会导致一个列表包含另一个包含该列表的列表。自圆,即从一个节点到它自己的一条边,将导致一个自引用列表。

于 2010-09-16T19:01:22.577 回答
0

大多数递归问题定义使用某种自引用对象或具有自引用定义的数据。

我会添加维基百科链接,因为它提供了很好的阅读:

SO上的其他人

于 2010-09-16T16:50:18.410 回答
0

如果您只询问列表,那么我现在想不出什么,除了可能在建模为列表的数据结构中递归地创建/搜索。

但是自引用的一个应用可能是python中的这个自引用类定义

于 2010-09-16T16:53:51.413 回答