Potrzebuję algorytmów przeszukiwania drzewa dla dowolnych drzew w kolejności od pierwszego do najmniejszego stopnia i od szerokości pierwszego przejścia. Najtrudniejszą częścią jest to, że muszę mieć możliwość uruchomienia z dowolnego węzła i kontynuować, aż do wykonania innego określonego węzła.Przechodzenie przez ogólną strukturę drzewa rozpoczynającą się od dowolnego węzła w języku C#
Teraz mogę użyć dowolnego ze zwykłych algorytmów i zignorować ruchome węzły, dopóki nie trafię do węzła początkowego i będę kontynuować aż do węzła końcowego (co obecnie robię), ale jest to brzydkie i nieefektywne.
Wszelkie sugestie, proszę.
AKTUALIZACJA: Każdy z moich węzłów ma powiązany identyfikator. W niektórych przypadkach na początku i na końcu odwołują się do węzła. W innych przypadkach dostaję dwa identyfikatory, sprawdzam, czy dany węzeł jest węzłem początkowym, czy końcowym, sprawdzając ich identyfikatory. Używam pierwszego przejścia przez głębokość, aby znaleźć węzeł początkowy. Zarówno początkowy, jak i końcowy węzeł może znajdować się w dowolnym miejscu w hierarchii. Mam nadzieję, że ktoś mógłby wymyślić pomysł na przypadek, w którym mam już odniesienia do węzła początkowego i końcowego. BTW, węzły w drzewie jest faktycznie sortowane według porządku sortowania, który rozpoczyna się od 0 dla każdego z podrzędnych węzłów węzła i tam jest węzłowi jednego korzenia
Jak znaleźć węzeł początkowy w drzewie bez przechodzenia przez niego? – BrokenGlass
Czy masz już * węzeł? W przeciwnym razie potrzebujesz drugiej bazy danych, aby przyspieszyć wyszukiwanie węzłów początkowych/końcowych. – harold
Proszę podać strukturę drzewa. Czy zaimplementowano jakąś kolejność sortowania? W jaki sposób powiązane są węzły? –