Здравствуйте, 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 ?
Опять же варианты кода деревья пустые без узлов?