public Lista_Ligada() { //Instanciamos el ancla ancla = new Nodito(); //Cómo es una lista vacía, su siguiente es null ancla.setSiguiente(null); }
//Insertar valor al inicio public void insertarInicio(int valor) { Nodito dato = new Nodito(); dato.setDato(valor); if (isEmpty()) { Agregar(valor); } else { dato.setSiguiente(ancla.getSiguiente()); ancla.setSiguiente(dato); } }
// Insertar un valor después de la primera ocurrencia del dato pasado a pDonde public void Insertar(int indiceInsercion, int valor) { // Encontramos la posición donde vamos a insertar trabajo = Buscar(indiceInsercion); if (trabajo == null) { return; } //Creamos el nodo temporal a insertar Nodito temporal = new Nodito(); temporal.setDato(valor); //Conectamos el temporal a la lista temporal.setSiguiente(trabajo.getSiguiente()); //Conectamos trabajo a temporal trabajo.setSiguiente(temporal); }
//Agregar nuevo elemento a la lista public void Agregar(int valor) { //Trabajo al Inicio trabajo = ancla; //Recorremos hasta encontrar el final while (trabajo.getSiguiente() != null) { //Avanzamos trabajo trabajo = trabajo.getSiguiente(); } // Creamos el nuevo nodo Nodito temporal = new Nodito(); //Insertemos el dato temporal.setDato(valor); //Finalizamos correctamente temporal.setSiguiente(null); //Ligamos el ultimo nodo encontrado con el recien creado trabajo.setSiguiente(temporal); }
//Borrar elemento de la lista public void borrarElemento(int valor) { //Verificamos que se tengan datos. if (isEmpty()) { return; } // Buscamos los nodos con los que trabajaremos Nodito anterior = getNoditoAnterior(valor); Nodito encontrado = Buscar(valor); // Si no hay nodo a borrar, salimos if (encontrado == null) { return; } //Brincamos el nodo anterior.setSiguiente(encontrado.getSiguiente()); // Quitamos el actual de la lista. encontrado.setSiguiente(null); }
// Vaciar la lista public void Vaciar() { ancla.setSiguiente(null); }