<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mint Z</title>
    <description>The latest articles on DEV Community by Mint Z (@mint_z).</description>
    <link>https://dev.to/mint_z</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2090154%2F37c5f806-9619-44ad-a9b3-41afa30c5f84.jpg</url>
      <title>DEV Community: Mint Z</title>
      <link>https://dev.to/mint_z</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mint_z"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>Mint Z</dc:creator>
      <pubDate>Sun, 06 Apr 2025 14:58:04 +0000</pubDate>
      <link>https://dev.to/mint_z/-4dg7</link>
      <guid>https://dev.to/mint_z/-4dg7</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/mint_z" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2090154%2F37c5f806-9619-44ad-a9b3-41afa30c5f84.jpg" alt="mint_z"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/mint_z/khnhaaesnthaangyaangopr-dwy-bfs-aela-dfs-ain-python-1gk" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;ค้นหาเส้นทางอย่างโปร ด้วย BFS และ DFS ใน Python!!!&lt;/h2&gt;
      &lt;h3&gt;Mint Z ・ Apr 6&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>python</category>
      <category>algorithms</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>ค้นหาเส้นทางอย่างโปร ด้วย BFS และ DFS ใน Python!!!</title>
      <dc:creator>Mint Z</dc:creator>
      <pubDate>Sun, 06 Apr 2025 14:34:27 +0000</pubDate>
      <link>https://dev.to/mint_z/khnhaaesnthaangyaangopr-dwy-bfs-aela-dfs-ain-python-1gk</link>
      <guid>https://dev.to/mint_z/khnhaaesnthaangyaangopr-dwy-bfs-aela-dfs-ain-python-1gk</guid>
      <description>&lt;p&gt;ในยุคนี้ที่อะไร ๆ ก็ต้องเร็ว ต้องฉลาดและต้องหาให้เจอภายในพริบตา อัลกอริธึมการค้นหา (Search Algorithms) ก็กลายเป็นพระเอกที่อยู่เบื้องหลังหลายสิ่งรอบตัวเราโดยไม่รู้ตัว ไม่ว่าจะเป็นแอปนำทางที่พาเราเลี่ยงรถติดเช่น Google Maps เกมแข่งรถที่บอทรู้ทางลัดเช่น Forza Horizon &lt;/p&gt;

&lt;p&gt;บทความนี้จะพาคุณไปรู้จักกับสองตัวท็อปของวงการค้นหาอย่าง Breadth-First Search (BFS) และ Depth-First Search (DFS) ผ่านตัวอย่างในภาษา Python ที่อ่านง่าย ใช้งานได้จริงกัน&lt;/p&gt;

&lt;h2&gt;
  
  
  Breadth-First Search (BFS) คืออะไร?
&lt;/h2&gt;

&lt;p&gt;BFS เป็นอัลกอริธึมที่ค้นหาจากจุดเริ่มต้นไปยังจุดหมายโดยไล่ระดับความลึกทีละชั้น เหมือนกับการเดินทางไปทีละจุดใกล้ๆ ก่อน แล้วค่อยขยายวงกว้างออกไป&lt;/p&gt;

&lt;p&gt;ลองนึกถึงการค้นหาหมายเลขโทรศัพท์ของเพื่อนในสมุดโทรศัพท์ คุณอาจไล่ดูรายชื่อจากตัวอักษร A ไป B แล้วไป C ซึ่งคล้ายกับแนวคิดของ BFS หรือหากคุณอยู่ในห้องสมุดแล้วต้องการหาหนังสือที่ต้องการ คุณอาจเริ่มจากการดูหมวดหมู่หลักก่อน แล้วค่อยลงลึกไปยังชั้นที่เฉพาะเจาะจงมากขึ้น&lt;/p&gt;

&lt;p&gt;ถ้างั้นเราลองมาดูตัวอย่างโค้ดกัน&lt;/p&gt;

&lt;h2&gt;
  
  
  ขั้นตอนที่1 การกำหนดกราฟในรูปแบบ Dictionary
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;graph = {
    'A': ['B', 'C'],
    'B': ['D', 'E'],
    'C': ['F'],
    'D': [],
    'E': ['F'],
    'F': []
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ขั้นตอนที่2 ลองใช้งาน BFS
&lt;/h2&gt;

&lt;p&gt;โค้ดนี้เป็นจะการทำงานของอัลกอริธึมการค้นหาความกว้างโดยเริ่มจากโหนดต้นทางแล้วทำการเยี่ยมชมทุกโหนดในกราฟที่เชื่อมต่อกับโหนดต้นทางทีละขั้นตอน โดยใช้คิว (queue) ในการจัดลำดับการเยี่ยมชม&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;visited = []
queue = []

def bfs(visited, graph, node):
  visited.append(node)
  queue.append(node)

  while queue:
    m = queue.pop(0) 
    print (m, end = " ") 

    for neighbour in graph[m]:
      if neighbour not in visited:
        visited.append(neighbour)
        queue.append(neighbour)

# Driver Code
print("BFS")
bfs(visited, graph, 'A')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;โดยโค้ดแต่ละส่วนจะมีการทำงานดังนี้ :&lt;/p&gt;

&lt;p&gt;visited → ใช้เก็บว่าเคยไปเยี่ยมชมโหนดไหนแล้วบ้าง&lt;br&gt;
queue → คิวที่ใช้เก็บโหนดที่ต้องไปต่อ&lt;br&gt;
pop(0) → เป็นการดึงโหนดแรกเข้ามาทำงาน&lt;/p&gt;

&lt;p&gt;ทีนี้ลองมาดูผลลัพธ์กันจากโค้ดเบื้องต้นกัน :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F192cu76oy2rrs0o2hg29.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F192cu76oy2rrs0o2hg29.png" alt="Image description" width="341" height="47"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ผลลัพธ์จากการรันฟังก์ชัน BFS จะเป็นการแสดงโหนดที่ถูกเยี่ยมชมในลำดับที่กว้างที่สุดเป็นชั้น ๆ ชั้นหนึ่งแล้วไปยังระดับชั้นถัดไป โดยเริ่มจากโหนด ('A') และเยี่ยมชมโหนดที่เชื่อมต่อกับโหนดนั้นๆ ทีละระดับโดยใช้คิวในการจัดลำดับการเยี่ยมชมหรือก็คือมาก่อนได้ก่อนนั่นเอง&lt;br&gt;
การทำงานของ BFS คือ:&lt;br&gt;
เริ่มจาก 'A' และไปเยี่ยมชม 'B' และ 'C' (ที่อยู่ในระดับเดียวกันหรือชั้นเดียวกัน)&lt;br&gt;
จากนั้นไปเยี่ยมชม 'D', 'E', และ 'F' ตามลำดับ&lt;/p&gt;
&lt;h2&gt;
  
  
  Depth-First Search (DFS) คืออะไร?
&lt;/h2&gt;

&lt;p&gt;DFS เป็นอัลกอริธึมที่ค้นหาข้อมูลโดย เจาะลึก ลงไปตามเส้นทางหนึ่งให้สุดก่อน แล้วจึงย้อนกลับมาและลองเส้นทางถัดไป เหมือนกับการเดินเข้าไปในเขาวงกตโดยเลือกทางใดทางหนึ่ง แล้วเดินให้สุดทางก่อน หากไปต่อไม่ได้จึงย้อนกลับและลองทางอื่น&lt;/p&gt;

&lt;p&gt;ลองนึกถึงคุณกำลังหาเพื่อนในอาคารที่มีหลายชั้นและแต่ละชั้นมีหลายห้อง&lt;br&gt;
แทนที่จะเดินดูทีละห้องในแต่ละชั้นคุณอาจเลือกเดินเข้าไปในห้องแรก แล้วดูให้ลึกว่ามีห้องในห้องย่อยมั้ย ถ้ามีก็เข้าไปต่อเรื่อย ๆ จนสุดทางก่อน ค่อยย้อนกลับมาเริ่มใหม่กับห้องถัดไป นี่คือแนวคิดของ DFS &lt;/p&gt;

&lt;p&gt;หรืออีกตัวอย่างง่าย ๆ ถ้าหากคุณกำลังหาไฟล์ในโฟลเดอร์คอมพิวเตอร์ DFS จะให้คุณเข้าไปในโฟลเดอร์แรกก่อน แล้วเปิดโฟลเดอร์ย่อยในนั้น ไล่ลงไปเรื่อย ๆ จนไม่มีอะไรจะเปิดอีกแล้ว ถึงจะย้อนกลับมาดูโฟลเดอร์อื่นในระดับเดียวกัน&lt;/p&gt;

&lt;p&gt;เราลองมาดูตัวอย่างโค้ดกัน&lt;/p&gt;
&lt;h2&gt;
  
  
  ขั้นตอนที่3 ลองใช้งาน DFS
&lt;/h2&gt;

&lt;p&gt;โค้ดนี้เป็นการทำงานของอัลกอริธึมการค้นหาความลึกโดยเริ่มจากโหนดต้นทางแล้วทำการเยี่ยมชมโหนดที่เชื่อมต่อกับโหนดต้นทางจนกว่าจะถึงโหนดที่ไม่มีโหนดต่อเชื่อม จากนั้นจะย้อนกลับและเยี่ยมชมโหนดที่ยังไม่ถูกเยี่ยมชม โดยใช้การเรียกฟังก์ชันซ้ำในการทำงาน&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;visited = set()

def dfs(visited, graph, node):
    if node not in visited:
        print (node)
        visited.add(node)
        for neighbour in graph[node]:
            dfs(visited, graph, neighbour)

print("DFS :")
dfs(visited, graph, 'A')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;โดยโค้ดแต่ละส่วนจะมีการทำงานดังนี้ :&lt;/p&gt;

&lt;p&gt;visited → ใช้เก็บว่าเคยไปเยี่ยมชมโหนดไหนแล้วบ้าง&lt;br&gt;
dfs() → เป็นการค้นหาลึกเข้าไปเรื่อย ๆ จนสุดทางก่อนค่อยย้อนกลับ&lt;/p&gt;

&lt;p&gt;ทีนี้ลองมาดูผลลัพธ์กันจากโค้ดเบื้องต้นกัน :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06e8o0u3eak412ppjz14.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F06e8o0u3eak412ppjz14.png" alt="Image description" width="205" height="139"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ผลลัพธ์ที่ได้จากการรันโค้ด DFS (Depth-First Search) คือการแสดงลำดับของโหนดที่ถูกเยี่ยมชม โดย DFS จะเลือก “ดำดิ่ง” ไปยังโหนดที่ลึกที่สุดก่อน แล้วค่อยย้อนกลับมาเก็บโหนดที่ยังตกค้างอยู่ภายหลัง&lt;/p&gt;

&lt;p&gt;มาดูขั้นตอนแบบง่าย ๆ:&lt;/p&gt;

&lt;p&gt;เริ่มจากโหนด 'A' → DFS จะเยี่ยมชม 'A' และมุ่งหน้าไปยัง 'B' เพราะเป็นโหนดที่เชื่อมต่อกับ 'A' เป็นลำดับแรก&lt;/p&gt;

&lt;p&gt;จาก 'B' → ไปต่อที่ 'D' (ลึกสุดก่อนตามแนวทางของ DFS)&lt;/p&gt;

&lt;p&gt;พอถึง 'D' → ไม่มีโหนดให้ไปต่อแล้ว → จึง “ย้อนกลับ” มาที่ 'B' แล้วไปยัง 'E'&lt;/p&gt;

&lt;p&gt;เยี่ยมชม 'E' เสร็จ → กลับไปที่ 'A' อีกครั้ง&lt;/p&gt;

&lt;p&gt;ตอนนี้ยังเหลือ 'C' ที่เชื่อมกับ 'A' → DFS เลยไปต่อที่ 'C'&lt;/p&gt;

&lt;p&gt;จาก 'C' → เดินหน้าต่อไปยัง 'F'&lt;/p&gt;

&lt;p&gt;สุดท้าย เยี่ยมชม 'F' เสร็จ → ย้อนกลับขึ้นมาเรื่อย ๆ จนครบทุกโหนดที่เชื่อมต่อ&lt;/p&gt;

&lt;p&gt;ถ้าพูดง่าย ๆ คือ DFS จะเป็นการ “ลุยลึกก่อนคิดทีหลัง” คือไปให้สุดทางก่อน แล้วค่อยย้อนกลับมาเช็กว่าเรายังตกหล่นอะไรไว้บ้าง&lt;/p&gt;
&lt;h2&gt;
  
  
  ทีนี้เรามาดูตัวอย่างอื่นอีกกันโดยใช้เกมหนีซอมบี้กันบ้างดีกว่า
&lt;/h2&gt;

&lt;p&gt;โดยก่อนเริ่มให้เรารันโค้ดนี้ลงไปใน Google Colab&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import time
from collections import deque
import os

maze = [
    [0, 0, 0, 0, 0],
    [0, 1, 1, 1, 0],
    [0, 0, 0, 1, 0],
    [0, 1, 0, 0, 0],
    [0, 0, 0, 1, 0]
]

player_pos = (0, 0)
zombie_pos = (4, 4)

def bfs(start, goal):
    queue = deque([[start]])
    visited = set()

    while queue:
        path = queue.popleft()
        x, y = path[-1]
        if (x, y) == goal:
            return path

        for dx, dy in [(-1,0),(1,0),(0,-1),(0,1)]:
            nx, ny = x + dx, y + dy
            if 0 &amp;lt;= nx &amp;lt; 5 and 0 &amp;lt;= ny &amp;lt; 5 and maze[nx][ny] == 0 and (nx, ny) not in visited:
                queue.append(path + [(nx, ny)])
                visited.add((nx, ny))
    return []

def print_maze(player, zombie):
    os.system('cls' if os.name == 'nt' else 'clear')
    for i in range(5):
        row = ""
        for j in range(5):
            if (i, j) == player:
                row += "P "
            elif (i, j) == zombie:
                row += "Z "
            elif maze[i][j] == 1:
                row += "# "
            else:
                row += ". "
        print(row)
    print()

while True:
    print_maze(player_pos, zombie_pos)

    if zombie_pos == player_pos:
        print("ผีจับคุณได้แล้ว! Game Over.")
        break

    move = input("WASD เพื่อขยับ: ").upper()
    dx, dy = 0, 0
    if move == "W": dx, dy = -1, 0
    elif move == "S": dx, dy = 1, 0
    elif move == "A": dx, dy = 0, -1
    elif move == "D": dx, dy = 0, 1

    new_x = player_pos[0] + dx
    new_y = player_pos[1] + dy

    if 0 &amp;lt;= new_x &amp;lt; 5 and 0 &amp;lt;= new_y &amp;lt; 5 and maze[new_x][new_y] == 0:
        player_pos = (new_x, new_y)

    path = bfs(zombie_pos, player_pos)
    if len(path) &amp;gt; 1:
        zombie_pos = path[1]

    time.sleep(0.1)

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;โดยโค้ดแต่ละส่วนจะมีการทำงานดังนี้ :&lt;/p&gt;

&lt;p&gt;visited → ใช้เก็บว่าเคยไปเยี่ยมชมโหนดไหนแล้วบ้าง&lt;br&gt;
queue → คิวที่ใช้เก็บโหนดที่ต้องไปต่อ&lt;br&gt;
pop(0) → เป็นการดึงโหนดแรกเข้ามาทำงาน&lt;br&gt;
bfs → ฟังก์ชันที่ใช้ค้นหาเส้นทางจากตำแหน่งผีไปยังตำแหน่งผู้เล่น โดยจะเริ่มต้นจากตำแหน่งของผีและตรวจสอบไปในทิศทางต่าง ๆ&lt;br&gt;
print_maze → ฟังก์ชันที่ใช้แสดงผลแผนที่ทุกครั้งหลังจากที่ผู้เล่นหรือผีทำการขยับ&lt;/p&gt;

&lt;p&gt;โดยหลักการเกมนี้มีง่าย ๆ คือ :&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;ซอมบี้จะเดินตามทางสั้นที่สุดโดยใช้ BFS&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ผู้เล่นควบคุมด้วยปุ่ม W A S D&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ผีจะเดินทีละ 1 ช่องทุกตา สลับกับเรา&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;เมื่อเราลองรันแล้วจะได้หน้าตา Output ออกมาเป็นแบบนี้&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr4ao7u59d4okuidnodqa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr4ao7u59d4okuidnodqa.png" alt="Image description" width="408" height="178"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;โดยให้เราเดินโดยใช้ปุ่มที่ตั้งค่าในโค้ดซึ่งในตัวอย่างนี้ใช้เป็น (W, A, S, D) โดยให้เดินไปทีละตาสลับกับซอมบี้ที่จะเดินมาหาเรา&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F89kr6no5n2nn6lq8ttqv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F89kr6no5n2nn6lq8ttqv.png" alt="Image description" width="501" height="743"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;จนเมื่อซอมบี้ใช้หลักการ BFS จนหาผู้เล่นเจอก็จะปรากฏดังนี้&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpmnca54aqw0xovz4nows.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpmnca54aqw0xovz4nows.png" alt="Image description" width="318" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  สรุปบทความนี้
&lt;/h4&gt;

&lt;p&gt;จากบทความนี้ เราได้ทำความรู้จักกับอัลกอริธึมการค้นหายอดนิยมทั้งสองแบบคือ Breadth-First Search (BFS) และ Depth-First Search (DFS) พร้อมตัวอย่างโค้ดภาษา Python ที่สามารถนำไปทดลองและประยุกต์ใช้ได้จริง ไม่ว่าจะเป็นการยกตัวอย่างของโหนดต่าง ๆ และการหาเส้นทางในแผนที่เกม  แม้อัลกอริธึมเหล่านี้จะดูเรียบง่าย แต่ก็สามารถต่อยอดไปสู่การแก้ปัญหาที่ซับซ้อนมากขึ้นได้มากขึ้นในอนาคต เช่น เกมที่ใช้ AI ในการประมวลผลเส้นทาง, ระบบนำทาง, หรือแม้แต่การวิเคราะห์เครือข่ายสังคมออนไลน์ ลองนำความรู้ที่ได้ไปประยุกต์ใช้ดูนะครับ&lt;/p&gt;

&lt;p&gt;ใครลองทำอะไรเจ๋ง ๆ มา แชร์กันได้เลยครับ 😄&lt;/p&gt;

&lt;p&gt;Reference :&lt;br&gt;
&lt;a href="https://favtutor.com/blogs/breadth-first-search-python" rel="noopener noreferrer"&gt;https://favtutor.com/blogs/breadth-first-search-python&lt;/a&gt;&lt;br&gt;
&lt;a href="https://favtutor.com/blogs/depth-first-search-python" rel="noopener noreferrer"&gt;https://favtutor.com/blogs/depth-first-search-python&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
