Ejemplo n.º 1
0
        public void AddToHead(int value)
        {
            var newNode = new SNode(value);

            if (head == null)
            {
                head = newNode;
                return;
            }

            newNode.Next = head;
            head         = newNode;
        }
Ejemplo n.º 2
0
        public void Print()
        {
            if (head == null)
            {
                return;
            }

            SNode current = head;

            while (current != null)
            {
                System.Console.WriteLine(current.Value);
                current = current.Next;
            }
        }
Ejemplo n.º 3
0
        public IEnumerator <int> GetEnumerator()
        {
            if (head == null)
            {
                Enumerable.Empty <int>();
            }
            else
            {
                SNode current = head;
                while (current != null)
                {
                    yield return(current.Value);

                    current = current.Next;
                }
            }
        }
Ejemplo n.º 4
0
        public void AddToTail(int value)
        {
            var newNode = new SNode(value);

            if (head == null)
            {
                head = newNode;
                return;
            }

            SNode current = head;

            while (current.Next != null)
            {
                current = current.Next;
            }
            current.Next = newNode;
        }
Ejemplo n.º 5
0
        public bool Find(int value)
        {
            if (head == null)
            {
                return(false);
            }

            SNode current = head;

            while (current != null)
            {
                if (current.Value == value)
                {
                    return(true);
                }

                current = current.Next;
            }
            return(false);
        }
Ejemplo n.º 6
0
        public void Reverse()
        {
            if (head == null)
            {
                return;
            }

            SNode p = null;
            SNode c = head;
            SNode n = head.Next;

            while (c.Next != null)
            {
                c.Next = p;
                p      = c;
                c      = n;
                n      = n.Next;
            }

            // Reverse last node and make it head.
            c.Next = p;
            head   = c;
        }
Ejemplo n.º 7
0
 public void Clear()
 {
     head = null;
 }