Datos personales

miércoles, 18 de abril de 2012

LISTAS

Consiste en una secuencia de nodos, en los que se guardan campos de datos arbitrarios y una o dos referencias, enlaces o punteros (punteros) al nodo anterior o posterior.



Listas simples enlazadas
La lista enlazada básica es la lista enlazada simple la cual tiene un enlace por nodo. Este enlace apunta al siguiente nodo en la lista, o al valor NULL o a la lista vacía, si es el último nodo.
[editar]


Lista Doblemente Enlazada
Un tipo de lista enlazada más sofisticado es la lista doblemente enlazada o lista enlazadas de dos vías. Cada nodo tiene dos enlaces: uno apunta al nodo anterior, o apunta al valor NULL si es el primer nodo; y otro que apunta al nodo siguiente, o apunta al valor NULL si es el último nodo.




Listas enlazadas circulares

En una lista enlazada circular, el primer y el último nodo están unidos juntos. Esto se puede hacer tanto para listas enlazadas simples como para las doblemente enlazadas. Para recorrer una lista enlazada circular podemos empezar por cualquier nodo y seguir la lista en cualquier dirección hasta que se regrese hasta el nodo original.
 
LISTA A PILA
(PILA DINAMICA)

package listaligada;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

/**
 *
 * @author PC135-23
 */
public class ListaLigada {
    public static void main (String args[]) {

                    Scanner leer = new Scanner(System.in);
                    int num;
                    int op;
                    LinkedList lista = new LinkedList();
                    do{
                        System.out.println( "\t Menú \t" );
                        System.out.println( "Operaciones con listas" );
                        System.out.println( "1.- Insertar al principio" );
                         System.out.println( "2.- Insertar siguiente" );
                        System.out.println( "3.- Borrar al final" );
                        System.out.println( "4.- Mostrar la lista" );
                        System.out.println( "5.- Borrar toda la lista" );
                        System.out.println( "6.- Salir" );
                        System.out.println( "\n" );
                        System.out.println( "Elija la operación que desee" );
 op = leer.nextInt();
 switch(op){
 case 1:
       System.out.println( "Inserte numero" );
        num = leer.nextInt();
        lista.addFirst(num);
        break;
case 2:
        System.out.println( "Inserte numero" );
         num = leer.nextInt();
         lista.addLast(num);
         break;

case 3:
           System.out.println( "Se borrara el nodo final" );
            lista.removeLast();
            break;
 case 4:
       System.out.println( "La lista es la siguiente" );
       List lista2 = new ArrayList(lista);
       Iterator it = lista2.iterator();
        while (it.hasNext()){
         System.out.println(it.next()+"");
          }
          break;
            case 5:
                 System.out.println( "Se borraran todos los elementos de la lista" );
                 lista.clear();
                 break;
                  case 6:
                     System.out.println( "Al rato" );
                      break;
                       }
                        }
while( op != 7 );

                }

            }

LISTA A COLA

package listaligada;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;

/**
 *
 * @author PC135-23
 */
public class ListaLigada {
        public static void main (String args[]) {

                    Scanner leer = new Scanner(System.in);
                    int num;
                    int op;
                    LinkedList lista = new LinkedList();
                    do{
                        System.out.println( "\t Menú \t" );
                        System.out.println( "Operaciones con listas" );
                        System.out.println( "1.- Insertar al principio" );
                         System.out.println( "2.- Insertar siguiente" );
                        System.out.println( "3.- Borrar el principio" );
                        System.out.println( "4.- Mostrar la lista" );
                        System.out.println( "5.- Borrar toda la lista" );
                        System.out.println( "6.- Salir" );
                        System.out.println( "\n" );
                        System.out.println( "Elija la operación que desee" );
 op = leer.nextInt();
 switch(op){
 case 1:
       System.out.println( "Inserte numero" );
        num = leer.nextInt();
        lista.addFirst(num);
        break;
case 2:
        System.out.println( "Inserte numero" );
         num = leer.nextInt();
         lista.addLast(num);
         break;

case 3:
           System.out.println( "Se borrara el nodo del principio" );
            lista.removeFirst();
            break;
 case 4:
       System.out.println( "La lista es la siguiente" );
       List lista2 = new ArrayList(lista);
       Iterator it = lista2.iterator();
        while (it.hasNext()){
         System.out.println(it.next()+"");
          }
          break;
            case 5:
                 System.out.println( "Se borraran todos los elementos de la lista" );
                 lista.clear();
                 break;
                  case 6:
                     System.out.println( "Al rato" );
                      break;
                       }
                        }
while( op != 7 );

                }

            }