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); } } }
public void add(int data) { Node node = new Node(data); node.setPrevious(tail); if (tail != null) { tail.setNext(node); } if (head == null) { head = node; } tail = node; size++; }
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()); } }