Pierwsze przejście do wyszukiwania w JavaScript

Pierwsze przejście do wyszukiwania w JavaScript

W tym nowoczesnym świecie technologicznym jesteśmy zobowiązani do stosowania technik programistycznego przemieszczania drzew, mimo że nasz komputer ma przyjazny dla użytkownika interfejs przeglądania przez nasze drzewo plików, w tym celu wyszukiwanie w tym celu jest najbardziej przydatnym algorytmem.

Pierwsze wyszukiwanie jest przemieszczeniem algorytm to jest używane wyszukiwanie lub przemierzanie danych drzewa lub wykresu warstwa struktury według warstwy. Przed przejściem do węzła dla dzieci następnego poziomu głębokości odwiedza każdy węzeł, który istnieje na bieżącej głębokości.

Ten artykuł wyjaśni, jak uruchomić Algorytm wyszukiwania po raz pierwszy Korzystanie z odpowiedniego przykładu. A więc zacznijmy

Jak działa algorytm wyszukiwania w zakresie szerokości w JavaScript

Działanie algorytmu wyszukiwania po raz pierwszy obejmuje następujące kroki:

  • Wybierać węzeł i utwórz kolejka z całym tym sąsiad węzły.
  • Usunąć te węzły z odwiedzanej kolejki i zaznacz je.
  • Dodać Wszystko to sąsiednie węzły w kolejce.
  • Powtarzać Dopóki kolejka staje się pusty Lub osiągniesz swój cel.

Jeśli węzeł zostanie ponownie odwiedzony, zanim nie został oznaczony jako odwiedzony, program zostanie zatrzymany. Stąd oznacz węzły, które odwiedzono, a następnie nie zostaną ponownie przeszukane.

Wdrożenie algorytmu przemieszczania się przeszukiwania szerokości

Pierwsze wyszukiwanie przemierza drzewa od lewej do prawej, a następnie porusza się od góry do dołu (Węzeł nadrzędny do węzła dziecięcego). Zapewnienie, że odwiedzane są wszystkie węzły obecne na bieżącej głębokości.

Teraz spójrzmy na mały przykład, aby zrozumieć BFS Traversal działa. Tutaj podany niekierowany wykres ma 5 węzłów „0”, „1”, „2”, „3” i „4”:

Będziemy teraz używać tego algorytmu przejścia na określonym wykresie.

Krok 1: Inicjalizacja kolejki

Po pierwsze, musimy Zainicjuj kolejkę "Q":

Krok 2: Wybierz początkowe węzeł

Następnie wybierzemy węzeł początkowy. W tym celu wybierzemy „0” jako węzeł początkowy i Zaznacz to jako odwiedzane:

Krok 3: Nieprzestrzegane sąsiednie węzły węzła początkowego

Początkowe węzeł jest odwiedzone i zaznaczone; Teraz to sprawdzimy sąsiednie węzły. Na poniższej ilustracji, Rozpoczęcie węzła „0” ma Trzy niewidziane sąsiednie węzły „1”, „2” i „3”; Jednak wybierzemy węzeł „1” Z powodu sekwencja liczenia. Następnie, ocena to jako odwiedzone I dodać to do kolejka:

Teraz niewidziane węzeł „0” to „2”, która jest również oznaczony jako odwiedzony i dodany do kolejki:

Następnie będziemy odwiedzać ostatni niewidoczny sąsiedni węzeł, czyli „3”, oznaczył to jako odwiedziłem i to uwikłaj:

Krok 4: Dequeue Węzeł początkowy

Teraz nasz wybrany węzeł początkowy „0” nie ma żadnych niepisanych sąsiednich węzłów, więc usuniemy kolejkę i szukamy węzła „1”:

Krok 5: Sprawdź niezaprzeczoną w sąsiedztwie węzła „1”

W tym momencie węzeł „1” mieć węzeł „4” Jako niewidziane sąsiadowane:

Węzeł „4” jest teraz oznaczony jako Odwiedzono i dodano do kolejki. Teraz nie mamy już więcej Niewidziane węzły. Jednak według algorytm, Otrzymamy wszystko Niewidziane węzły i kontynuuj usuwanie węzła z kolejki zgodnie z procedurą. Program zakończy się, gdy kolejka staje się pusty.

Zaimplementujmy przykład, aby sprawdzić, jak działa wyszukiwanie w zakresie szerokości JavaScript.

Jak wdrożyć przemieszczenie wyszukiwania w poszukiwaniu szerokości w JavaScript

Aby zaimplementować przejście do wyszukiwania szerokości w JavaScript, przede wszystkim utworzymy wykres:

Niech wykres;

Powyższy wykres, który jest używany do zilustrowania poszukiwania szerokości „5” węzły. Więc tutaj zdefiniujemy „5” Węzły:

węzły const = 5;

Teraz stwórz Tablica „Odwiedzona []” które zostaną użyte do przechowywania odwiedzone węzły i długość tej tablicy zostanie ustawione zgodnie z liczbą węzły:

Niech odwiedzono = nowa tablica (węzły);

Następnie zdefiniujemy „CreateGraf ()” funkcja w celu utworzenia wykresu i dodania do niego węzłów. A później "Do" pętla będzie wykonywana do długości wykresu. Wewnątrz pętli znajduje się dwuwymiarowa tablica, która jest użyta do reprezentowania krawędzi wykresu zainicjowanych „0”:

const createGraph = (węzły) =>
Graph = nowa tablica (węzły);
dla (niech i = 0; i < graph.length; i++)
wykres [i] = nowa tablica (węzły);
dla (niech i = 0; i < graph.length; i++)
dla (niech j = 0; j < graph[i].length; j++)
wykres [i] [j] = 0;


;

Następnie zdefiniujemy „Dodaj ()” Funkcja, która akceptuje dwa argumenty „A” i „B”. Ta funkcja sprawdzi krawędź między dwoma węzłami. Jeśli między dwoma węzłami znajduje się krawędź, to Funkcja „addge ()” zastąpi Wpis „0” z „1” na utworzonym wykresie (tablica dwuwymiarowa). Ponadto dodanie „1” Wskazuje, że argument przekazany węzłów ma przewagę między nimi:

const dodanie = (a, b) =>
dla (niech i = 0; i < graph.length; i++)
dla (niech j = 0; j < graph[i].length; j++)
if (i === a && j === b)
wykres [i] [j] = 1;
wykres [j] [i] = 1;



Teraz zdefiniujemy „ChulethFirstsearch ()” funkcjonować. Najpierw stworzymy puste "kolejka". Na początku wszystkie węzły są niezmienione, więc są oznaczone jako fałszywe „Odwiedzono [i] = false” oświadczenie. Następnie wybierzemy początek "węzeł" który jest przekazywany jako argument „ChulethFirstsearch ()” funkcja i zaznacz odwiedzone. "kolejka.naciskać()" Metoda popchnie "węzeł" do kolejki, a następnie "chwila" pętla będzie wykonywać do długości kolejki. Ta pętla sprawdzi krawędzie „CurrentNode” z pozostałym węzłem.

W środku "dla pętli, Dodane „If” Warunek „[CurrentNode] [J] === 1” sprawdzi krawędzie między „CurrentNode” i pozostałe "J" węzły. W przypadku, gdy oba węzły mają przewagę między nimi a odpowiadającymi Węzeł „j” nie jest jeszcze odwiedzany, a następnie zostanie oznaczone jako „Odwiedzono” i popchnął do „kolejki”:

const ChulethFirstsearch = (node) =>
const queue = []; for (niech i = 0; i < visited.length; i++)
odwiedzone [i] = false;
odwiedzone [węzeł] = true;
kolejka.push (węzeł);
When (kolejka.długość)
Niech currentNode = kolejka.zmiana();
konsola.log ('odwiedzanie $ currentNode');
dla (niech j = 0; j < graph[currentNode].length; j++)
if (wykres [currentNode] [j] === 1 && odwiedził [j] === false)
odwiedzone [j] = true;
kolejka.push (j);



;

Następnie zadzwonimy Funkcja „createGraph ()” i przejść „Węzły” jako argument:

createGraph (węzły);

Po wykonaniu tego określ krawędzi węzła „0, 1, 2, 3” Funkcja „addge ()”, Jak pokazano na powyższym schemacie:

dodaj (0, 1);
dodaj (0, 2);
dodaj (0, 3);
dodaj (1, 0);
dodawanie (1, 4);
dodaj (2, 0);
dodawanie (2, 4);
dodaj (3, 0);
dodawanie (3, 4);

Tutaj, „0” jest przekazywany jako węzeł początkowy do Funkcja BFS () które wykonają dalszą operację:

BEZESFIRSTSEARCH (0);

Metoda BFS () przemierzy węzły wykresowe i wysyła odwiedzone węzły na konsoli:

To były wszystkie przydatne informacje o Algorytm przejścia na szerokość pierwszego wyszukiwania W JavaScript. W razie potrzeby idź na dalsze badania.

Wniosek

Pierwsze wyszukiwanie (BFS) jest przemieszczeniem algorytm to jest używane wyszukiwanie lub przemierzanie warstwy struktury danych drzewa lub wykresu według warstwy. Przed przejściem do Węzeł dzieci następnego poziomu głębokości odwiedza każdy węzeł, który istnieje w Obecna głębokość. W tym artykule krótko omówiliśmy algorytm JavaScript w przeszłości i jego działanie z pomocą odpowiedniego przykładu.