示例#1
0
        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;
        }
示例#2
0
        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);
        }
示例#3
0
        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);
            }
        }
示例#4
0
        public SimpleTreeNode <T> Root; // корень, может быть null

        public SimpleTree(SimpleTreeNode <T> root)
        {
            Root = root;
        }
示例#5
0
        public List <SimpleTreeNode <T> > Children; // список дочерних узлов или null

        public SimpleTreeNode(T val, SimpleTreeNode <T> parent)
        {
            NodeValue = val;
            Parent    = parent;
            Children  = null;
        }