Как сериализовать двоичное дерево

FlashDevelop действительно легок установить с Flex SDK. Просто загрузите FlashDevelop, затем загрузите Flex SDK. В FlashDevelop переходят к Инструментам> Опции Программы> AS3Context (под Плагинами)> Набор "Flex Местоположение SDK" к корню папки, Вы извлекли SDK к и сборку далеко. FlashDevelop даже имеет основной проект MXML, который получит Вас движение.

, Если Вы используете ColdFusion для бэкенда, имея FlexBuilder в Eclipse и CFEclipse, может означать тот меньше IDE должным быть знакомиться с.

28
задан royhowie 14 April 2015 в 02:07
поделиться

1 ответ

Я не использую предзаказ, но я использую BFS. Это - вопрос от большинство leetcode

людей, реализация является неправильной при использовании предзаказа: ожидаемый результат должен быть

" [1,2,3, пустой указатель, пустой указатель, 4,5]", но вместо этого люди большинства печатают вывод как" [1,2,3, пустой указатель, пустой указатель, 4,5, пустой указатель, пустой указатель]", так как они не считают уровни.

Вот моя реализация с корректным результатом.

class Node(object):
    def __init__(self,data):
        self.left = None
        self.right = None
        self.data = data

def serialize(root):
        queue = [(root,0)]
        result = []
        max_level_with_value = 0
        while queue:
            (node,l) = queue.pop(0)
            if node:
                result.append((node.data,l))
                queue.extend([(node.left,l+1),
                              (node.right,l+1)
                              ])
                max_level_with_value = max(max_level_with_value,l)
            else:
                result.append(('null',l))
        filter_redundant(result,max_level_with_value)


def filter_redundant(result,max_level_with_value):
    for v,l in result:
        if l<= max_level_with_value:
            print(v)




root = Node(1)
root.left = Node(2)
root.right = Node(3)
root.right.left = Node(4)
root.right.right = Node(5)
serialize(root)
0
ответ дан 28 November 2019 в 03:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: