Библиотека двоичного дерева поиска для тестирования лит-кода в моей собственной IDEPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Библиотека двоичного дерева поиска для тестирования лит-кода в моей собственной IDE

Сообщение Anonymous »


В настоящее время я отвечаю на вопрос BST по leet-коду, но предпочитаю делать это в своей собственной IDE. Я использую IntelliJ IDEA. Примером может служить случай, когда вопрос кода leet заключается в поиске максимальной суммы пути.

Мой код выглядит следующим образом:

# Определение узла двоичного дерева. # класс TreeNode(объект): # def __init__(self, val=0, left=None, right=None): # self.val = значение # self.left = влево # self.right = правильно Решение класса (объект): def maxPathSum(self, root): """ :тип корень: TreeNode :rtype: целое число """ Защиту maxSum (корень, max_sum = 0): если root равен None: вернуть максимальную_сумму левый_корень = корень.левый.значение правый_корень = корень.право.значение окончательная_сумма = левый_корень + правый_корень + корень.значение если окончательная_сумма > максимальная_сумма: максимальная_сумма = окончательная_сумма maxSum(корень, максимальная_сумма) вернуть maxSum (корень) print(Solution().maxPathSum(root=[-10, 9, 20, Нет, Нет, 15, 7])) В моем коде есть некоторые ошибки, и я не могу их проверить, так как я привык к таким входным данным в узлах дерева:

test_tree_node = BST(20) test_tree_node.insert(5) test_tree_node.insert(23) Вводные данные (тестовые примеры), заданные в коде, представляют собой массив. Какую библиотеку я бы импортировал, чтобы иметь возможность их протестировать? (Чтобы root.left и root.right работали и т. д.).

Для BST, о котором я упоминал выше, это выглядит так:
класс BST: def __init__(self, значение, глубина=1): self.value = значение self.глубина = глубина self.left = Нет self.right = Нет Защитная вставка (я, значение): если значение < self.value: если self.left равен None: self.left = BinarySearchTree(значение=значение, глубина=self.глубина + 1) print(f'Узел дерева {value} добавлен слева от {self.value} на глубине {self.length + 1}') еще: self.left.insert(значение) еще: если self.right равен None: self.right = BinarySearchTree(значение=значение, глубина=self.глубина + 1) print(f'Узел дерева {value} добавлен справа от {self.value} на глубине {self.length + 1}') еще: self.right.insert(значение) Защиту get_node_by_value (я, значение): если значение == само.значение: вернуть себя elif self.left и значение < self.value: вернуть self.left.get_node_by_value(значение) элиф self.right и значение >= self.value: вернуть self.right.get_node_by_value(значение) еще: возврат Нет защита глубины_first_traversal (сам): если self.left не имеет значения None: self.left.length_first_traversal() print(f'Depth={self.глубина}, Value={self.value}') если self.right не None: self.right.length_first_traversal()
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»