Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Depth First Search บน Binary Tree แบบ Recursive ใน Python


DFS บน Binary Tree แบบ Pre-order (Root, Left, Right) พร้อมแสดงสถานะ entering/at/leaving แต่ละโหนด

ตัวอย่างโค้ด

class Node:
    def __init__(self, key):
        self.key = key
        self.left = None
        self.right = None
    
    def dfs(self):
        print(f'Entering {self.key}...')
        if self.left:
            self.left.dfs()
        print(f'At {self.key}...')
        if self.right:
            self.right.dfs()
        print(f'Leaving {self.key}...')

# Build tree
root = Node(5)
root.left = Node(6)
root.right = Node(8)

print("DFS Traversal:")
root.dfs()

ผลลัพธ์

DFS Traversal:
Entering 5...
Entering 6...
At 6...
Leaving 6...
At 5...
Entering 8...
At 8...
Leaving 8...
Leaving 5...

คำอธิบาย

  • Pre-order: พิมพ์ "Entering" ก่อนไปลูกซ้าย

  • หลังกลับจากลูกซ้าย พิมพ์ "At" (ระหว่าง left และ right)

  • หลังกลับจากลูกขวา พิมพ์ "Leaving"

  • แสดง call stack visualization ของ recursion

  • โครงสร้าง: 5 → left=6, right=8