示例#1
0
        public void deleteNode(int data)
        {
            Node current  = head;
            Node previous = head;

            //if the first node is
            if (current.getData() == data)
            {
                head = current.getNext();
            }
            else
            {
                //At end if the current data is the data we are looking for
                while (current.getData() != data)
                {
                    previous = current;
                    current  = current.getNext();
                    if (current == null)
                    {
                        break;
                    }
                    else if (current.getData() == data)
                    {
                        previous.setNext(current.getNext());
                        break;
                    }
                }
            }
        }
示例#2
0
 public String GetInfoThirdItem()
 {
     if (first != null)
     {
         Node second = first.getNext();
         if (second != null)
         {
             Node third = second.getNext();
             if (third != null)
             {
                 return(third.getItem().ToString());
             }
             else
             {
                 return("there is no third item in the list");;
             }
         }
         else
         {
             return("there is no third item in the list");;
         }
     }
     else
     {
         return("there is no third item in the list");;
     }
 }
        public int next()
        {
            int data = currentNode.getData();

            currentNode = currentNode.getNext();

            return(data);
        }
示例#4
0
 //Insert new node with new data
 public void newNode(int data)
 {
     // If first node is null
     if (head is null)
     {
         head = new Node(data, null);
     }
     // Else add new node to end
     else
     {
         Node current = head;
         // At end if current.next is null
         while (current.getNext() != null)
         {
             current = current.getNext();
         }
         current.setNext(new Node(data, null));
     }
 }
示例#5
0
        public void delete(int index)
        {
            Node currentNode  = head;
            int  currentIndex = 0;

            if (index < 0 || index >= size)
            {
                return;
            }

            size--;

            if (size == 0)
            {
                head = null;
                tail = null;
                return;
            }

            if (index == 0)
            {
                head = head.getNext();
                head.setPrevious(null);
            }

            if (index == size - 1)
            {
                tail = tail.getPrevious();
                tail.setNext(null);
            }

            if (index > 0 && index < size - 1)
            {
                while (currentIndex < index)
                {
                    currentNode = currentNode.getNext();
                    currentIndex++;
                }

                currentNode.getPrevious().setNext(currentNode.getNext());
                currentNode.getNext().setPrevious(currentNode.getPrevious());
            }
        }
示例#6
0
        public void insert(int data, int position, Iterator it)
        {
            Node newNode     = new Node(data);
            Node currentNode = it.getCurrentNode();

            if (position == AFTER)
            {
                newNode.setNext(currentNode.getNext());
                newNode.setPrevious(currentNode);
                currentNode.setNext(newNode);

                if (newNode.getNext() != null)
                {
                    newNode.getNext().setPrevious(currentNode);
                }
                else
                {
                    tail = newNode;
                }
            }
            else if (position == BEFORE)
            {
                newNode.setPrevious(currentNode.getPrevious());
                newNode.setNext(currentNode);
                currentNode.setPrevious(newNode);

                if (newNode.getPrevious() != null)
                {
                    newNode.getPrevious().setNext(newNode);
                }
                else
                {
                    head = newNode;
                }
            }
            else
            {
                System.Console.WriteLine("No conozco el valor de position");
            }

            size++;
        }
示例#7
0
        public void printData()
        {
            int  i       = 1;
            Node current = head;

            while (current != null)
            {
                System.Console.WriteLine("Node" + i + ":" + current.getData());
                current = current.getNext();
                i++;
            }
        }
        /**
         *
         * @param index 0-index
         * @return data in index
         */
        public int get(int index)
        {
            Node currentNode  = head;
            int  currentIndex = 0;

            while (currentNode != null && currentIndex < index)
            {
                currentNode = currentNode.getNext();
                currentIndex++;
            }

            return(currentNode.getData());
        }
        public void insert(int data, int position, Iterator it)
        {
            Node newNode     = new Node(data);
            Node currentNode = it.getCurrentNode();

            size++;

            if (position == AFTER)
            {
                newNode.setNext(currentNode.getNext());

                currentNode.setNext(newNode);

                if (newNode.getNext() != null)
                {
                    newNode.setPrevious(currentNode);
                    newNode.getNext().setPrevious(newNode);
                }
                else
                {
                    newNode.setNext(null);
                }
            }
            else if (position == BEFORE)
            {
                newNode.setPrevious(currentNode.getPrevious());
                newNode.setNext(currentNode);
                currentNode.setPrevious(newNode);

                if (newNode.getPrevious() != null)
                {
                    newNode.getPrevious().setNext(newNode);
                }
                else
                {
                    newNode.setPrevious(null);
                }
            }
        }