2010-09-16 7 views
9

Sé que es posible crear una lista de referencias auto en lenguajes como Python:Usos de las listas de referenciación auto

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

Qué algoritmos se benefician de las listas de referencia a uno mismo? No puedo pensar en uno.

Gracias.

Respuesta

0

La mayoría de las definiciones recursivas de problemas utilizan algún tipo de objetos autorreferenciales o datos con definición autorreferencial.

me gustaría añadir el enlace de Wikipedia, ya que proporciona una buena readup:

otros en SO

+1

Específicamente, ¿a qué problemas se refiere que se puedan simplificar con listas que se contienen? –

+0

Gracias por los seguimientos/ediciones, pero ¿qué ofrece la recurrencia con las listas autorreferenciales la recursión final y el método de autoreferencia * que la recursión no puede hacer y ser más expresivo? –

0

Si está pidiendo casi listas, entonces no se puede pensar en algo en este momento, a excepción quizá de forma recursiva la creación/búsqueda en una estructura de datos modelado como lista.

Pero una aplicación de una referencia a sí misma podría ser esta Self Referencing Class Definition in python

3

listas de referencia a sí, y, en general, estructuras de datos circulares, puede ser causada cuando se representa un gráfico usando estructuras de datos.

Por ejemplo, considere esta representación ingenua de un gráfico: cada nodo es un valor atómico o una lista de nodos a los que está vinculado. Un círculo puede hacer que una lista contenga otra lista que contenga la lista. Un círculo automático, es decir, un borde desde un nodo a sí mismo, causará una lista de autorreferencia.