Ejemplo n.º 1
0
        public void AddLast(LinkedNode <T> newNode)
        {
            if (Count == 0)
            {
                _Head = newNode;
                _Rear = newNode;

                _Count++;
            }
            else
            {
                AddAfter(_Rear, newNode);
            }
        }
Ejemplo n.º 2
0
        public void AddFirst(LinkedNode <T> newNode)
        {
            if (Count == 0)
            {
                _Head = newNode;
                _Rear = newNode;

                _Count++;
            }
            else
            {
                AddBefore(_Head, newNode);
            }
        }
Ejemplo n.º 3
0
        public void AddBefore(LinkedNode <T> node, LinkedNode <T> newNode)
        {
            if (node == null)
            {
                throw new ArgumentException("node is null");
            }

            newNode._Previous = node.Previous;
            node._Previous    = newNode;
            newNode._Next     = node;

            if (newNode.Previous != null)
            {
                newNode.Previous._Next = node;
            }
            else
            {
                _Head = newNode;
            }

            _Count++;
        }
Ejemplo n.º 4
0
        public void AddAfter(LinkedNode <T> node, LinkedNode <T> newNode)
        {
            if (node == null)
            {
                throw new ArgumentException("node is null");
            }

            newNode._Next     = node.Next;
            node._Next        = newNode;
            newNode._Previous = node;

            if (newNode.Next != null)
            {
                newNode.Next._Previous = node;
            }
            else
            {
                _Rear = newNode;
            }

            _Count++;
        }
Ejemplo n.º 5
0
 LinkedTable()
 {
     _Head  = null;
     _Rear  = null;
     _Count = 0;
 }
Ejemplo n.º 6
0
 public LinkedNode(T value)
 {
     _Previous = null;
     _Next     = null;
     _Value    = value;
 }
Ejemplo n.º 7
0
 public LinkedNode(LinkedNode <T> previous, LinkedNode <T> next, T value)
 {
     _Previous = previous;
     _Next     = next;
     _Value    = value;
 }
Ejemplo n.º 8
0
 public LinkedNode()
 {
     _Previous = null;
     _Next     = null;
     _Value    = default(T);
 }
Ejemplo n.º 9
0
 public void AddBefore(LinkedNode <T> node, T item)
 {
     AddBefore(node, new LinkedNode <T>(item));
 }
Ejemplo n.º 10
0
 public void AddAfter(LinkedNode <T> node, T item)
 {
     AddAfter(node, new LinkedNode <T>(item));
 }