/// <summary> /// Adds item i to the end of the linked list /// </summary> /// <param name="i"></param> public void AddItem(Item i) { if (first != null) { //there are 1 or more items already in the linked list Node tempNode; tempNode = new Node(i); last.setNext(tempNode); last = tempNode; } else {// there are no items in the linked list first = new Node(i); last = first; } }
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++; }
//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 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); } } }