//llenar la lista con nodos del arbol binario public void ingresar(usuario user) { //insertar la parte izquierda if (user.izq != null) { ingresar(user.izq); } //insertar el nodo actual if (ultimo == null)//la lista esta vacia { primero = new nodoinorder(user); ultimo = primero; } else { nodoinorder nuevo = new nodoinorder(user); ultimo.siguiente = nuevo; nuevo.anterior = ultimo; ultimo = nuevo; } //insertar la parte derecha if (user.der != null) { ingresar(user.der); } }
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 nodoinorder(usuario user_) { user = user_; anterior = null; siguiente = null; }