/* Inserta una ficha dependiendo de su costo (menores primero). */ private void insertElement(Blanco ficha) { for (int i = 0; i < this.listaBuscados.Count; i++) { Blanco fichaActual = this.listaBuscados[i]; // Si la nueva ficha tiene un costo menor. if (fichaActual.getCostoCompleto() >= ficha.getCostoCompleto()) { this.listaBuscados.Insert(i, ficha); return; } } this.listaBuscados.Add(ficha); // Agreguela al final. }
/* Inseta un elemento, primero revise si ya se insertó en la lista de búsqueda previamente. */ public void insert(Blanco ficha) { for (int i = 0; i < this.listaBuscados.Count; i++) { Blanco fichaTemp = listaBuscados[i]; // Si las dos fichas tienen la misma posición. if (ficha.compararFicha(fichaTemp)) { // Si su costo es menor a la previa. if (ficha.getCostoCompleto() < fichaTemp.getCostoCompleto()) { cambiosRealizados++; listaBuscados.Remove(fichaTemp); this.insertElement(ficha); // Inserte si su costo es menor. } return; } } this.insertElement(ficha); // Inserte si no tiene coincidencias. }