示例#1
0
        public int next()
        {
            int data = currentNode.getData();

            currentNode = currentNode.getPrevious();

            return(data);
        }
示例#2
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());
            }
        }
示例#3
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++;
        }
        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);
                }
            }
        }