BBranchSpire
Продукт

Возможности программы · Восстановление дерева по обходам

01

Проверьте примеры обходов на границе парсера, затем позиции восстановленных потомков до передачи вложенного дерева следующему потребителю.

01

Подключение

Базовый URL, учётные данные и доступный сервер.

02

Выбор

Модель, которую предоставляет настроенный endpoint.

03

Возможности

Объём контекста и поддержка инструментов определяются моделью и сервером.

Восстановление дерева по обходам

● ● ●BranchSpire●
Конкретная отправная точка · Восстановление дерева по обходам ×
def rebuild_tree(preorder, inorder):
    for row in (preorder,inorder):
        if type(row) not in (list,tuple) or len(row) > 100 or any(type(v) is not int for v in row):
            raise ValueError("at most 100 integer nodes")
    if len(set(preorder)) != len(preorder) or len(set(inorder)) != len(inorder) or set(preorder) != set(inorder):
        raise ValueError("same distinct node labels")
    positions, cursor = {v:i for i,v in enumerate(inorder)}, 0
    def visit(lo,hi):
        nonlocal cursor
        if lo == hi: return None
        value = preorder[cursor]; cursor += 1
        at = positions[value]
        if not lo <= at < hi: raise ValueError("inconsistent traversals")
        left = visit(lo,at)
        right = visit(at+1,hi)
        return value,left,right
    return visit(0,len(inorder))
✳Восстановите двоичное дерево по прямому и симметричному обходам с числом различных целых меток до 100.
✓ ИзмененияПроверьте перед применением ↗
Иллюстрация рабочей среды
Рабочая среда с ИИ для кода

Здесь начинается ваше следующее изменение.

Скачать для Windows ↗