public void AddChild(SimpleTreeNode <T> ParentNode, SimpleTreeNode <T> NewChild) { if (ParentNode.Children == null) { ParentNode.Children = new List <SimpleTreeNode <T> >(); } ParentNode.Children.Add(NewChild); NewChild.Parent = ParentNode; }
public void MoveNode(SimpleTreeNode <T> OriginalNode, SimpleTreeNode <T> NewParent) { OriginalNode.Parent.Children.Remove(OriginalNode); if (NewParent.Children == null) { NewParent.Children = new List <SimpleTreeNode <T> >(); } NewParent.Children.Add(OriginalNode); }
public void DeleteNode(SimpleTreeNode <T> NodeToDelete) { NodeToDelete.Parent.Children.Remove(NodeToDelete); if (NodeToDelete.Children == null) { return; } foreach (var node in NodeToDelete.Children) { NodeToDelete.Parent.Children.Add(node); } }
public SimpleTreeNode <T> Root; // корень, может быть null public SimpleTree(SimpleTreeNode <T> root) { Root = root; }
public List <SimpleTreeNode <T> > Children; // список дочерних узлов или null public SimpleTreeNode(T val, SimpleTreeNode <T> parent) { NodeValue = val; Parent = parent; Children = null; }