Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan traversal pokok binari menggunakan Python

Bagaimana untuk melaksanakan traversal pokok binari menggunakan Python

WBOY
WBOYasal
2023-06-09 21:12:062069semak imbas

Sebagai struktur data yang biasa digunakan, pepohon binari sering digunakan untuk menyimpan data, mencari dan mengisih. Melintasi pokok binari adalah salah satu operasi yang sangat biasa. Sebagai bahasa pengaturcaraan yang mudah dan mudah digunakan, Python mempunyai banyak kaedah untuk melaksanakan traversal pokok binari. Artikel ini akan memperkenalkan cara menggunakan Python untuk melaksanakan traversal prapesanan, tertib dan pasca pesanan bagi pokok binari.

Asas Pokok Binari

Sebelum mempelajari cara melintasi pokok binari, kita perlu memahami konsep asas pokok binari. Pokok binari terdiri daripada nod, setiap nod mempunyai nilai dan dua anak (anak kiri dan anak kanan). Anak-anak nod boleh kosong.

Perjalanan pokok binari

Perjalanan pokok binari merujuk kepada melawati semua nod dalam pokok binari dalam susunan tertentu. Terdapat tiga kaedah traversal yang biasa digunakan: traversal prapesanan, traversal tertib dan traversal pasca pesanan.

Preorder traversal

Turutan prapesan traversal ialah nod akar, subpokok kiri dan subpokok kanan. Dalam pelaksanaan khusus, anda boleh terlebih dahulu mengeluarkan nilai nod akar, dan kemudian melintasi subpokok kiri dan subpokok kanan secara rekursif.

Berikut ialah pelaksanaan kod Python:

class TreeNode:
    def __init__(self, val=0, left=None, right=None):
        self.val = val
        self.left = left
        self.right = right

def preorderTraversal(root: TreeNode):
    if root is None:
        return []
    res = [root.val]
    res += preorderTraversal(root.left)
    res += preorderTraversal(root.right)
    return res

Traversal tertib

Turutan traversal tertib ialah subpokok kiri, nod akar dan subpokok kanan. Dalam pelaksanaan khusus, adalah perlu untuk melintasi subpokok kiri secara rekursif, mengeluarkan nilai nod akar, dan kemudian melintasi subpokok kanan secara rekursif.

Berikut ialah pelaksanaan kod Python:

def inorderTraversal(root: TreeNode):
    if root is None:
        return []
    res = []
    res += inorderTraversal(root.left)
    res.append(root.val)
    res += inorderTraversal(root.right)
    return res

Perjalanan pasca pesanan

Turutan rentas pasca pesanan ialah subpokok kiri, subpokok kanan dan nod akar. Dalam pelaksanaan khusus, adalah perlu untuk melintasi subpokok kiri dan subpokok kanan secara rekursif, dan akhirnya mengeluarkan nilai nod akar.

Berikut ialah pelaksanaan kod Python:

def postorderTraversal(root: TreeNode):
    if root is None:
        return []
    res = []
    res += postorderTraversal(root.left)
    res += postorderTraversal(root.right)
    res.append(root.val)
    return res

Ringkasan

Dalam Python, apabila menggunakan traversal pokok binari, anda boleh mencapai prapesanan, pesanan dan pasca- perintah traversal melalui rekursi . Selain rekursi, ia juga boleh dilaksanakan menggunakan kaedah seperti carian tindanan dan keluasan pertama. Menguasai kaedah traversal pokok binari akan sangat berguna untuk kerja pengaturcaraan harian.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan traversal pokok binari menggunakan Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn