예제 #1
0
        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;
                    }
                }
            }
        }
예제 #2
0
 public nodotopten(usuario user_)
 {
     user      = user_;
     anterior  = null;
     siguiente = null;
 }