İki yapılar: Bir dizi ve bir liste.
Setinde, zaten ziyaret etmiş düğümleri saklayın. Bu döngüleri şu engeller.
(1) bir düğüm ve geri bulunan düğüme (2) bir işaretçi: liste içeren nesnelerin olduğunu.
Başlangıç düğüm başlayarak, kümesine eklemek null geri referansla listesine ekleyin ve sonra bu listedeki endeksi 0 geri referansları ile listeye ulaşabilirsiniz tüm düğümleri (başlangıç düğümü) ekleyin .
Eğer sonuna ulaşmak sonra listedeki her eleman için daha sonra, yukarı kadar, aşağıdakileri yapın:
- Bu sette ise zaten atlayın (sen zaten ziyaret etmiş) ve listedeki bir sonraki öğeye geçmek.
- aksi halde, kümesine eklemek, ve bu listenin sonuna 'bakıyor' olan indeksine geri referansları ile listeye ulaşabilirsiniz tüm düğümleri ekleyin. Sonra listesi ve tekrarı bir sonraki dizine gidin.
Herhangi bir noktada (sen listeye ekliyoruz optimum gibi - listede ziyaret aksine) son düğümü ulaşırsanız, geri başlangıç düğüme geri referanslar yoluyla izlemek ve yolu ters.
Örnek:
Given nodes 0 through 3, where
node0 --> node1
node0 --> node2
node1 --> node2
node2 --> node3
and node0 is START and node3 is END
SET = {}
LIST = []
Adım 1 - BAŞLANGIÇ ekleyin:
SET = {node0}
LIST = [[node0, null]]
Adım 2 - listesinin dizin 0 - ulaşılabilir düğümleri ekleyin:
SET = {node0, node1, node2}
LIST = [[node0, null], [node1, 0], [node2, 0]]
Adım 3 - LİSTESİ indeksi 1 - ulaşılabilir düğümleri ekleyin:
node2 is already in the SET. skip adding reachable nodes to LIST.
SET = {node0, node1, node2}
LIST = [[node0, null], [node1, 0], [node2, 0]]
Adım 4 - LİSTESİ dizin 2'deki - ulaşılabilir düğümleri ekleyin:
SET = {node0, node1, node2, node3}
LIST = [[node0, null], [node1, 0], [node2, 0], [node3, 2]]
Adım 5 - SON ulaştı, şimdi geriye:
LİSTESİ eklenen END düğüm (node3) node2 olduğu listede endeksi 2 için geri başvuru vardır. Bu node0 (START) olduğu listede endeksi 0 bir geri başvuru vardır. Bu ters çevirin ve node0 bir kısa yolu olsun -> node2 -> node3.