Ошибка метода левого просмотра в двоичном дереве с использованием PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка метода левого просмотра в двоичном дереве с использованием Python

Сообщение Anonymous »

Я изучаю DSA довольно долго. Во время обучения я столкнулся с концепцией «Метод левого представления в двоичном дереве». Я полностью написал свой код, но при попытке создать модифицированное двоичное дерево возникла ошибка.
Мое представление двоичного дерева

Код: Выделить всё

    1
/ \
2   3
/ \  / \
4   5 6  7
\
8
Фактическое представление слева — 1, 2, 4, но вместо 1, 2, 4, 8 отображается 8 Правый вид также включен. Если вы знаете, как решить проблему, найдите и прокомментируйте ошибку. Это поможет в моем учебном путешествии. Заранее спасибо 🙂. (код ниже)

Код: Выделить всё

# left view method
class Node:
def __init__(self, val):
self.left = None
self.right = None
self.data = val

class Leftview:
def view(self, root):
out = []
maxlevel = [-1]
self._helperrecur(root, 0, maxlevel, out)
for i in range(len(out)):
print(out[i], end=' ')

def _helperrecur(self, root, level, maxlevel, out):

#base condition
if root is None:
return

#main condition
if level > maxlevel[0]:
out.append(root.data)
maxlevel[0] = level

#recursive through tree
self._helperrecur(root.left, level+1, maxlevel, out)
self._helperrecur(root.right, level+1, maxlevel, out)

root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.left.left = Node(4)
root.left.right = Node(5)
root.right.left = Node(6)
root.right.right = Node(7)
root.right.left.right = Node(8)

lf = Leftview()
lf.view(root)
Ранее я пробовал другой способ изменить рекурсию: влево -> вправо, но я изменил его на правый -> левый, чтобы проверить правое представление. Правый вид работает нормально.
Исключенный результат: 1, 3, 7, 8
Мой результат: 1, 3, 7, 8
код здесь,

Код: Выделить всё

self._helperrecur(root.right, level+1, maxlevel, out)
self._helperrecur(root.left, level+1, maxlevel, out)
Я ожидаю: как правый вид переходит в левый вид? Если бы ты знал, прокомментируй меня,

Подробнее здесь: https://stackoverflow.com/questions/790 ... ing-python
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • StackOverflowError при реализации метода поиска в двоичном дереве в Java
    Anonymous » » в форуме JAVA
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Общие операторы в двоичном дереве с использованием C++
    Anonymous » » в форуме C++
    0 Ответы
    43 Просмотры
    Последнее сообщение Anonymous
  • Обход почтового порядка в двоичном дереве с использованием одного стека
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Эффект перехода начинается с ВЕРХНЕГО ЛЕВОГО угла, но нужно, чтобы он начинался с левого угла.
    Anonymous » » в форуме CSS
    0 Ответы
    81 Просмотры
    Последнее сообщение Anonymous
  • Leetcode: подсчет хороших узлов в двоичном дереве
    Гость » » в форуме JAVA
    0 Ответы
    36 Просмотры
    Последнее сообщение Гость

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