Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie die Binärbaum-Traversierung mit Python

So implementieren Sie die Binärbaum-Traversierung mit Python

WBOY
WBOYOriginal
2023-06-09 21:12:062028Durchsuche

Als häufig verwendete Datenstruktur werden Binärbäume häufig zum Speichern, Suchen und Sortieren von Daten verwendet. Das Durchlaufen eines Binärbaums ist eine der häufigsten Operationen. Als einfache und benutzerfreundliche Programmiersprache verfügt Python über viele Methoden zur Implementierung der Binärbaumdurchquerung. In diesem Artikel wird erläutert, wie Sie mit Python die Durchquerung eines Binärbaums vor, in der Reihenfolge und nach der Bestellung implementieren.

Grundlagen von Binärbäumen

Bevor wir lernen, wie man einen Binärbaum durchquert, müssen wir die Grundkonzepte von Binärbäumen verstehen. Ein Binärbaum besteht aus Knoten, jeder Knoten hat einen Wert und zwei untergeordnete Elemente (linkes untergeordnetes und rechtes untergeordnetes Element). Die Kinder eines Knotens können leer sein.

Binärbaum-Traversierung

Binärbaum-Traversierung bezieht sich auf den Besuch aller Knoten im Binärbaum in einer bestimmten Reihenfolge. Es gibt drei häufig verwendete Durchquerungsmethoden: Durchquerung vor der Bestellung, Durchquerung in der Reihenfolge und Durchquerung nach der Bestellung.

Durchquerung vor der Bestellung

Die Reihenfolge der Durchquerung vor der Bestellung ist der Wurzelknoten, der linke Teilbaum und der rechte Teilbaum. In einer bestimmten Implementierung können Sie zunächst den Wert des Wurzelknotens ausgeben und dann den linken Teilbaum und den rechten Teilbaum rekursiv durchlaufen.

Das Folgende ist die Python-Code-Implementierung:

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

Durchlauf in der richtigen Reihenfolge

Die Reihenfolge des Durchlaufs in der richtigen Reihenfolge ist linker Teilbaum, Wurzelknoten und rechter Teilbaum. In einer bestimmten Implementierung ist es erforderlich, den linken Teilbaum rekursiv zu durchlaufen, den Wert des Wurzelknotens auszugeben und dann den rechten Teilbaum rekursiv zu durchlaufen.

Das Folgende ist die Python-Code-Implementierung:

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

Post-Order-Traversal

Die Reihenfolge des Post-Order-Traversals ist linker Teilbaum, rechter Teilbaum und Wurzelknoten. In einer bestimmten Implementierung ist es erforderlich, den linken Teilbaum und den rechten Teilbaum rekursiv zu durchlaufen und schließlich den Wert des Wurzelknotens auszugeben.

Das Folgende ist die Python-Code-Implementierung:

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

Zusammenfassung

In Python kann bei Verwendung der binären Baumdurchquerung die Vorbestellungs-, In-Reihenfolge- und Nachbestellungs-Durchquerung durch Rekursion erreicht werden. Neben der Rekursion können auch Methoden wie Stack- und Breitensuche verwendet werden. Die Beherrschung der Methode der Binärbaumdurchquerung wird für die tägliche Programmierarbeit sehr nützlich sein.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Binärbaum-Traversierung mit Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn