public void insertar(nodoinorder entrada) { //copiar nodo de entrada nodotopten nuevo = new nodotopten(entrada.user); nodotopten temp = primero; if (temp == null) { primero = nuevo; } else { if (tipo == 0) //el ordenamiento es por juegos ganados { //insertar al inicio if (temp.user.ganados <= nuevo.user.ganados) { nuevo.siguiente = temp; temp.anterior = nuevo; primero = nuevo; } //insertar al medio else { while (temp.siguiente != null) { if (temp.siguiente.user.ganados <= nuevo.user.ganados) { nuevo.siguiente = temp.siguiente; nuevo.siguiente.anterior = nuevo; temp.siguiente = nuevo; nuevo.anterior = temp; return;//terminar el proceso } else { temp = temp.siguiente; } } //insertar al final temp.siguiente = nuevo; nuevo.anterior = temp; } } else if (tipo == 1) //el tipo de ordenamiento es por porcentaje { //insertar al inicio if (temp.user.porcentaje <= nuevo.user.porcentaje) { nuevo.siguiente = temp; temp.anterior = nuevo; primero = nuevo; } //insertar al medio else { while (temp.siguiente != null) { if (temp.siguiente.user.porcentaje <= nuevo.user.porcentaje) { nuevo.siguiente = temp.siguiente; nuevo.siguiente.anterior = nuevo; temp.siguiente = nuevo; nuevo.anterior = temp; return;//terminar el proceso } else { temp = temp.siguiente; } } //insertar al final temp.siguiente = nuevo; nuevo.anterior = temp; } } else if (tipo == 2) //el tipo de ordenamiento es por cantidad de contactos { //insertar al inicio if (temp.user.contactos.cont <= nuevo.user.contactos.cont) { nuevo.siguiente = temp; temp.anterior = nuevo; primero = nuevo; } //insertar al medio else { while (temp.siguiente != null) { if (temp.siguiente.user.contactos.cont <= nuevo.user.contactos.cont) { nuevo.siguiente = temp.siguiente; nuevo.siguiente.anterior = nuevo; temp.siguiente = nuevo; nuevo.anterior = temp; return;//terminar el proceso } else { temp = temp.siguiente; } } //insertar al final temp.siguiente = nuevo; nuevo.anterior = temp; } } else if (tipo == 3) //el tipo de ordenamiento es por mayor cantidad de unidades eliminadas { //insertar al inicio if (temp.user.destruidos <= nuevo.user.destruidos) { nuevo.siguiente = temp; temp.anterior = nuevo; primero = nuevo; } //insertar al medio else { while (temp.siguiente != null) { if (temp.siguiente.user.destruidos <= nuevo.user.destruidos) { nuevo.siguiente = temp.siguiente; nuevo.siguiente.anterior = nuevo; temp.siguiente = nuevo; nuevo.anterior = temp; return;//terminar el proceso } else { temp = temp.siguiente; } } //insertar al final temp.siguiente = nuevo; nuevo.anterior = temp; } } } }
public nodotopten(usuario user_) { user = user_; anterior = null; siguiente = null; }