public ListaLigada<T> dividir(int opcion) { ListaLigada<T> lista = new ListaLigada<>(); int elementos = 1; Nodo<T> aux = inicio; while (aux.getLiga() != null) { elementos++; aux = aux.getLiga(); } elementos = (elementos % 2) == 0 ? elementos / 2 : elementos / 2 + 1; aux = inicio; int i = 1; if (opcion == 1) { while (i <= elementos) { lista.insertarFinal(aux.getInfo()); aux = aux.getLiga(); i++; } } else { while (aux != null) { if (i > elementos) { lista.insertarFinal(aux.getInfo()); } aux = aux.getLiga(); i++; } } return lista; }
public ListaLigada<T> invertirLista() { ListaLigada<T> respuesta = new ListaLigada<>(); Nodo<T> aux = inicio; while (aux != null) { respuesta.insertarInicio(aux.getInfo()); aux = aux.getLiga(); } return respuesta; }
public static void main(String[] args) { ListaLigada lista = new ListaLigada(); lista.adiciona("Rafael"); lista.adiciona(0, "Paulo"); lista.adiciona(1, "Camila"); System.out.println(lista); }
public ListaLigada<T> intercalar(int mitad) { ListaLigada<T> lista = new ListaLigada<>(); boolean agregar = mitad == 1 ? true : false; Nodo<T> aux = inicio; while (aux != null) { if (agregar) { lista.insertarFinal(aux.getInfo()); aux = aux.getLiga(); agregar = false; } else { aux = aux.getLiga(); agregar = true; } } return lista; }
public boolean esVacia() { return lista.esVacia(); }
public NodoLista desencolar() { return lista.deletePrimerNodo(); }
public void encolar(int e, int s, int pr) { lista.insertaNodos(e, s, pr); }