12 feb 2010

PostHeaderIcon Pila o Listas Simples






Una Pila (Stack): es una estructura de datos de tipo LIFO (del inglés Last In First Out) que permite almacenar y recuperar datos mediante dos operaciones principalmente, push (apilar) y pop (des-apilar). Estas operaciones se realizan sobre un único extremo llamado cima.

  • Push ----Añadir un dato en la pila
  • Pop --- Retirar un dato en la pila

Una pila es una colección ordenada de elementos, en la cual se puede insertar nuevos elementos por un extremo y se pueden retirar otros por el mismo extremo; ese extremos se llama “el tope de la pila” (top).

Ejemplo:

         public class Lista {

                 private Nodo Primero;
                 private Nodo Ultimo;
                  int n;

               public Lista() {

                    Primero = null;
                    Ultimo = null;
               }

        public void insertar(String cvePro, String nomPro, String precioPro){

                 Nodo Nuevo;
                 Nuevo = new Nodo(cvePro, nomPro, precioPro);

             if (Primero == null)
                {
                       Primero = Nuevo;
                       Ultimo = Nuevo;
               }
                  else
                     {
                            Ultimo.Siguiente = Nuevo;
                            Ultimo = Nuevo;
                    }
              }

          public Nodo consultar(String cvePro){

            Nodo Cursor;
           Cursor = Primero;
              while ((Cursor != null) && (!Cursor.cveProducto.equals(cvePro)))
                 {
                    Cursor = Cursor.Siguiente;
                }
                    if(Cursor != null)
                       {
                          return(Cursor);
                       }
                       else
                              {
                                return(null);
                                  }
                     }
          
          public boolean suprimir(String cvePro){

               Nodo ptrAnterior;
               Nodo ptrActual;
              ptrActual = Primero;
              ptrAnterior = null;
              while ((ptrActual != null) && (!ptrActual.cveProducto.equals(cvePro)))
               {
                 ptrAnterior = ptrActual;
                ptrActual = ptrActual.Siguiente;
                }

                if(ptrActual!= null)
                {
                        /*--Eliminar el primer nodo de la LISTA---*/
                         if(ptrAnterior == null)
                        {
                           if(ptrActual == Ultimo)
                               {
                                  Primero = null;
                                  Ultimo = null;
                              }
                    else
                          {
                             Primero = Primero.Siguiente;
                          }
                       } //fin del if
                            else
                                  {
                                     if(ptrActual == Ultimo)
                                       {
                                           Ultimo = ptrAnterior;
                                          Ultimo.Siguiente = null;
                                         }
                           else
                              {
                               ptrAnterior.Siguiente = ptrActual.Siguiente;
                              }
                        }
                          return(true);
                      }
                       else
                           {
                             return(false);
                            }
                    }

     public void Listar(List L){

            Nodo Cursor;
            Cursor = Primero;
            L.clear();
              while (Cursor != null)
           {
             L.add(Cursor.nomProducto);
            Cursor = Cursor.Siguiente;
            }
                }
    }//fin de la clase Lista

       class Nodo{

             public String cveProducto;
             public String nomProducto;
             public String precioProducto;
            public Nodo Siguiente;
           Nodo(String cvePro, String nomPro, String precioPro)
              {
               cveProducto = cvePro;
               nomProducto = nomPro;
               precioProducto = precioPro;
              Siguiente = null;
                 }
           }

Bueno espero que les sirva.

0 comentarios:

Publicar un comentario

Enlazanos

Programas NetBlog

Categorias

Ultimas entradas