Autor Tema: Listas doblemente encadenadas Java  (Leído 38250 veces)

tu

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 7
    • Ver Perfil
Listas doblemente encadenadas Java
« en: 02 de Abril 2015, 03:13 »
Hola le agradeceria mucho una explicacion contundente de estos temas pero en Java es para una exposicion urgente

TEMAS: LISTAS

4. Listas doblemente encadenadas
4.1. Inserción de un dato en una lista doblemente encadenada después de un nodo dado
4.2. Retiro de un nodo de una lista doblemente encadenada
4.3. Listas circulares doblemente encadenadas
4.4. Liberación de los nodos de una lista circula doblemente encadenada
4.5. Creación de una lista circular doblemente encadenada
4.6. Copia de una lista p en una lista q
4.7. Suma de dos números muy grandes
4.8. Impresión de una lista recursivamente

y con este ejercicio si me lo pueden explicar que tengo que hacer ya que no tengo claro el tema

EJERCICIOS PARA DESARROLLAR: LISTAS

Elaborar una función que reciba dos listas circulares doblemente encadenadas que contienen dos números muy grandes y devuelva la multiplicación entre ellos. Suponga que los números son mayores o iguales a 0.

GRACIASSSSS!!
« Última modificación: 02 de Abril 2015, 13:55 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:JAVA LISTAS DOBLEMENTE ENCADENADAS
« Respuesta #1 en: 02 de Abril 2015, 13:55 »
Hola, la cuestión planteada es muy amplia y muy compleja como para poder resolverla en un foro. Podríamos intentar responder alguna cuestión concreta pero lo planteado es demasiado amplio.

Referencia de cómo se codifica una lista doblemente enlazada en java (esto habría que trabajarlo para adaptarlo):

Nodo principal

Código: [Seleccionar]
public class NodoDoble {
            private Integer dato;
            private NodoDoble siguiente;
    private NodoDoble anterior;
}

Método Insertar inicio

           
Código: [Seleccionar]
public void insertarInicio(Integer d){
            NodoDoble nuevo = new NodoDoble(d);
            if(inicio==null){
            inicio=nuevo;
            }else{
            nuevo.setSiguiente(inicio);
            inicio.setAnterior(nuevo);
            inicio=nuevo;
            }
            }
           

  Método Insertar final

           
Código: [Seleccionar]
public void insertarFinal(Integer d){
            NodoDoble nuevo = new NodoDoble(d);
            if(inicio == null){
            inicio = nuevo;
            }else{
            NodoDoble aux = inicio;
            while(aux.getSiguiente() != null){
            aux = aux.getSiguiente();
           
            }
            aux.setSiguiente(nuevo);
            nuevo.setAnterior(aux);

            }
           
            }
           

Metodo Eliminar

Código: [Seleccionar]
public void eliminaValor(Integer valor){
                        if (inicio != null){
                                   NodoDoble aux = inicio;
                                   NodoDoble ant = null;
                                   while (aux != null){
                                               if (aux.getDato() == valor ){
                                                           if (ant == null){
                                                                       inicio = inicio.getSiguiente();
                                                                       aux.setSiguiente(null);
                                                                       aux= inicio;
                                                         
                                                           }else {
                                                                       ant.setSiguiente(aux.getSiguiente());
                                                                       aux.setSiguiente(null);
                                                                       aux = ant.getSiguiente();
                                                           }                                             
                                                           }else{
                                                                       ant = aux;
                                                                       aux = aux.getSiguiente();
                                                           }
                                               }
                                   }
                                 
                        }
           
            Método buscar

           
Código: [Seleccionar]
public void buscar(Integer valor){
                        if (inicio != null){
                                   NodoDoble aux = inicio;
                                 
                                   int cont = 0;
                                   while (aux != null){
                                               if (aux.getDato() == valor ){
                                                           cont++;
                                                           aux = aux.getSiguiente();
                                                         
                                               }                                 
                                   }                     
                             }
                        }

Salu2

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".