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; } } } }
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); }
//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)); } }
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()); } }
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 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); } } }