public void addlast(T Value)
 {
     if (tail == null)
     {
         tail = new bubblylinknode <T>(Value);
     }
     else
     {
         bubblylinknode <T> newnode = new bubblylinknode <T>(Value, null, tail);
         tail = newnode;
     }
 }
 public void addfirst(T Value)
 {
     if (head == null)
     {
         head = new bubblylinknode <T>(Value);
     }
     else
     {
         bubblylinknode <T> newnode = new bubblylinknode <T>(Value, head, null);
         head = newnode;
     }
 }
        public bool addafter(bubblylinknode <T> node, T Value)
        {
            bubblylinknode <T> afternode = head;

            while (node != afternode || afternode == node)
            {
                afternode = afternode.Next;
            }

            if (afternode == null)
            {
                return(false);
            }
            else
            {
                afternode.Next = new bubblylinknode <T>(Value, afternode.Next, afternode);
                afternode.Next.Next.Previous = afternode.Next;
                return(true);
            }
        }
        public bool addbefore(bubblylinknode <T> node, T Value)
        {
            bubblylinknode <T> beforenode = head;

            while (node != beforenode || beforenode == null)
            {
                beforenode = beforenode.Next;
            }

            if (beforenode == null)
            {
                return(false);
            }
            else
            {
                beforenode.Previous = new bubblylinknode <T>(Value, beforenode, beforenode.Previous);
                beforenode.Previous.Previous.Next = beforenode.Previous;
                return(true);
            }
        }
        public bool remove(T Value)
        {
            bubblylinknode <T> node = head;

            while (!node.Value.Equals(Value) || node == null)
            {
                node = node.Next;
            }

            if (node == null)
            {
                return(false);
            }
            else
            {
                node.Previous.Next = node.Next;
                node.Next.Previous = node.Previous;
                return(true);
            }
        }
Esempio n. 6
0
 public bubblylinknode(T Value, bubblylinknode <T> Next, bubblylinknode <T> Previous)
 {
     this.Value    = Value;
     this.Next     = Next;
     this.Previous = Previous;
 }