Код Python для печати двоичного дерева

Двоичное дерево — это тип структуры данных, в которой каждый узел имеет не более двух дочерних элементов, называемых левым дочерним элементом и правым дочерним элементом. Двоичные деревья используются в различных аспектах информатики, включая сортировку и поиск. В этом уроке мы создадим бинарное дерево в Python и завершим Код Python для печати двоичного дерева.
Шаг 1: Определите бинарное дерево
Во-первых, нам нужно создать структуру бинарного дерева. Здесь мы определим простой класс Node:
class Node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
Этот класс представляет узел в двоичном дереве, который содержит некоторые данные и указатели на своих левых и правых дочерних элементов.
Шаг 2: Вставьте данные в двоичное дерево
Чтобы вставить данные в дерево, мы определим функцию вставки:
def insert(root, data):
if root is None:
return Node(data)
else:
if data <= root.data:
root.left = insert(root.left, data)
else:
root.right = insert(root.right, data)
return root
В этой функции, если дерево пусто (т. е. корень None), мы создаем новый узел с заданными данными и возвращаем его. Если дерево не пусто, мы рекурсивно вставляем данные в левое или правое поддерево в зависимости от его значения.
Шаг 3: Распечатайте бинарное дерево
Есть несколько способов «напечатать» бинарное дерево. Здесь мы реализуем методы обхода по порядку, предварительному и последующему порядку:
- Обход по порядку: в этом методе обхода сначала посещается левое поддерево, затем корень, а затем правое поддерево.
def print_inorder(root):
if root:
print_inorder(root.left)
print(root.data, end=" ")
print_inorder(root.right)
- Предварительный обход: в этом методе обхода сначала посещается корневой узел, затем левое поддерево и, наконец, правое поддерево.
def print_preorder(root):
if root:
print(root.data, end=" ")
print_preorder(root.left)
print_preorder(root.right)
- Пост-порядковый обход: в этом методе обхода корневой узел посещается последним. Сначала мы обходим левое поддерево, затем правое поддерево и, наконец, корневой узел.
Шаг 4: Код Python для печати двоичного дерева
Вот полный код:
class Node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
def insert(root, data):
if root is None:
return Node(data)
else:
if data <= root.data:
root.left = insert(root.left, data)
else:
root.right = insert(root.right, data)
return root
def print_inorder(root):
if root:
print_inorder(root.left)
print(root.data, end=" ")
print_inorder(root.right)
def print_preorder(root):
if root:
print(root.data, end=" ")
print_preorder(root.left)
print_preorder(root.right)
def print_postorder(root):
if root:
print_postorder(root.left)
print_postorder(root.right)
print(root.data, end=" ")
root = Node(50)
root = insert(root, 30)
root = insert(root, 20)
root = insert(root, 40)
root = insert(root, 70)
root = insert(root, 60)
root = insert(root, 80)
print("In-order traversal:")
print_inorder(root)
print("\nPre-order traversal:")
print_preorder(root)
print("\nPost-order traversal:")
print_postorder(root)
Когда вы запустите этот код, он создаст двоичное дерево и напечатает дерево, используя обходы в порядке, в порядке предварительного и после порядка.
Заключение
В этом руководстве по Python я объяснил бинарное дерево в Python и Код Python для печати двоичного дерева.
Вам также может понравиться:

Я Биджай Кумар, Microsoft MVP в SharePoint. Помимо SharePoint, последние 5 лет я начал работать над Python, машинным обучением и искусственным интеллектом. За это время я приобрел опыт работы с различными библиотеками Python, такими как Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn и т. д. для различных клиентов в США, Канаде, Великобритании, Австралии, Новая Зеландия и т. д. Проверьте мой профиль.
Ссылка на источник