public void Remove(T element)
    {
        if (first == null)
        {
            return;
        }

        NodeDoble <T> elementToRemove = null;
        var           current         = first;

        if (first.GetValue().Equals(element))
        {
            first.RemoveNode();
            first = first.children;
            return;
        }

        while (current.children != null)
        {
            if (current.children.GetValue().Equals(element))
            {
                elementToRemove = current.children;
                break;
            }
            current = current.children;
        }

        if (elementToRemove != null)
        {
            elementToRemove.RemoveNode();
        }
    }
 void Initialization(T element)
 {
     first = new NodeDoble <T>();
     last  = new NodeDoble <T>();
     first.SetValue(element);
     last           = first;
     first.children = last;
 }
示例#3
0
    public void SetChildren(T newChildren)
    {
        var newNode = new NodeDoble <T>();

        newNode.SetValue(newChildren);
        children        = newNode;
        children.father = this;
    }
 public void Add(T element)
 {
     if (first == null)
     {
         Initialization(element);
     }
     else
     {
         last.SetChildren(element);
         last = last.children;
     }
 }