2010-09-16 14 views
9

Wiem, że jest możliwe stworzenie własnej listy odniesienie w językach takich jak Python:Zastosowań własny list odsyłania

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

Co algorytmy korzystać z własnych list odwołujących? Nie mogę o tym myśleć.

Dzięki.

Odpowiedz

0

W większości definicji rekursywnych wykorzystuje się pewne obiekty samopowstające lub dane z definicją samoreferencyjną.

Dodam link wikipedia, ponieważ zapewnia dobrą readup:

innych na SO

+1

W szczególności, z jakimi problemami można się uprzytomnić, korzystając z list zawierających się? –

+0

Dzięki za kontynuację/edycje, ale co robi rekursja z listami samoodniesienia oferującą rekursję typu tail-end i samoodniesienia * metoda * rekurencja nie może być bardziej ekspresyjna? –

0

Jeśli proszą tylko o listach, to nie mogę myśleć o czymś teraz, z wyjątkiem być może rekurencyjnie tworzenia/wyszukiwanie w strukturze danych modelowane jako listy.

Ale jeden wniosek o siebie bazowania może być to Self Referencing Class Definition in python

3

własny przedstawieniu listy, i, ogólnie rzecz biorąc, kolistych struktur danych, może być spowodowany tym, co stanowi wykres za pomocą struktur danych.

Weźmy na przykład tę naiwną reprezentację wykresu: Każdy węzeł jest albo wartością atomową, albo listą węzłów, z którymi jest połączony. Krąg może sprawić, że lista będzie zawierała inną listę, która zawiera listę. Samokręg, tj. Krawędź od węzła do siebie, spowoduje utworzenie listy samoreferencyjnej.