Re[25]: C# [Proposal] init block for safe initialization of
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 29.12.25 17:37
Оценка:
Здравствуйте, pilgrim_, Вы писали:


S>>Нет не затыкает! Ибо для крайних узлов это не null!

S>>Устал писать. Для последней ноды Next = Node.EmptyNode для первой Previous = Node.EmptyNode


_>Влад в том числе о таких циклах и говорил как я понял (на гитхабе правда пример не дописанный для узлов, но из контекста вроде всё понятно).


Это классический пример двухнаправленного списка. Или двоичных деревьев.

С полностью циклическими графами я дело не имел. Всегда есть тупики.

У него пример как раз

init (var root = new TreeNode(), var child1 = new TreeNode(), var child2 = new TreeNode())
{
    root.Left = child1;
    root.Right = child2;
    
    SetParent(child1, root);
    SetParent(child2, root);
    
    void SetParent(TreeNode child, TreeNode parent)
    {
        child.Parent = parent; // Parent is a non-nullable property
    }
}


Где для child Left и Right?

Сlass Node
{
    public required Node Next { get; set; }
    public required Node Previous { get; set; }
}

init (var node1 = new Node(), var node2 = new Node())
{
    node1.Next = node2;
    node2.Previous = node1;
}


где для node2.Next и node1.Previous ?


Опять же варианты кода деревья пустые без узлов?
и солнце б утром не вставало, когда бы не было меня
Отредактировано 29.12.2025 18:02 Serginio1 . Предыдущая версия . Еще …
Отредактировано 29.12.2025 17:45 Serginio1 . Предыдущая версия .
Отредактировано 29.12.2025 17:42 Serginio1 . Предыдущая версия .
Отредактировано 29.12.2025 17:38 Serginio1 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.