04 febrero, 2015

Listas

Definición

Una lista es un conjunto ordenado de elementos homogéneos, en la que no hay restricciones de acceso, la introducción y borrado de elementos puede realizarse en cualquier posición de la misma. Esta es una estructura dinámica, por lo que no podemos saber con certeza los elementos (nodos) que puede contener, ya que su tamaño cambia a medida que se añaden y eliminan elementos de la misma.

Características

- Se accesa a toda la lista a partir de un apuntador externo llamado Lista contiene la dirección del primer nodo en la lista.

- Cada nodo tiene dos secciones: el contenido de datos (Info) y el campo del apuntador (sig).

- El campo Info (de información) contiene el elemento real en la lista.

 -El campo sig (dirección siguiente) contiene la dirección del siguiente nodo en la lista. Tal dirección se conoce como apuntador.

-El último nodo tiene un apuntador nulo.

-Cada nodo es una estructura de datos de tipo registro.

-Una lista vacía es aquella que no contiene nodos. Lista=NULL.


Operaciones básicas de una lista:

·         Recorrido de la lista: Visita todos los elementos de la lista.

Function largo (l: lista): integer;
Var
      Contador: integer;
      P: lista;
Begin
      Contador:=0;
      P:=l;
      While p <> vnil do
      Begin
           Contador:= contador + 1;
            P:=p .siguiente;         (Avanzar a la siguiente celda)
     End;
     Largo:=contador;
End;

·         Inserción de un elemento: Agrega un elemento a la lista.

Procedure agregar_al_principio (var l: Lista; elem: t);
Var p: Lista;
Begin
       New (p);                        (crear nueva celda)
       p. elemento:= elem;      (cargar el elemento)

       (Ajuste de punteros)
       p. siguiente:=L;
       L:=p;
End;

Procedure agregar_al_final (var L: Lista; elem: T);
Var p.q: Lista;
Begin
       New (p);                     (crear nueva celda)
       p.elemento:=elem;     (cargar el elemento)
       p. siguiente:= nil;       (es el ultimo)

       If l= nil then
           L:=p
       Else
       Begin
              (Buco el último de l)
              Q:=l;
              While q. siguiente <> nil do
                    Q:=q. siguiente;

             (Engancho p a continucion del último)
             q. siguiente:=p;
      End;

End;

·         Borrado de un elemento: Retira un elemento de la lista.

Procedure borrar_primero (var l: lista);
Var
       P: lista;
Begin
       P:=l;
       L:=l. siguiente;
       Dispose (p)
End;













Procedure borrar_lista (l: lista);
Var
      P: lista;
Begin
     While l <>nil do
     Begin
            P:= l;
            L:= l. siguiente;
            Dispose (p);
     End;
End;

·         Búsqueda de un elemento: Busca el elemento en la lista.

Function pertenece (elem: T; L Lista): boolean;
Var
      P: Lista;
Begin
      P:=L;
(Notar: evolución por circuito corto)
       Write (p <> nil) and (p. elemento <> elem) do
             P:= p. siguiente;
Pertenece:= (p <> nil);
End;
           
·         Vacía: Indica si la lista contiene o no elementos.
·         Tamaño: Indica el número de elementos de la lista. 

Estructura básica

Type
      Lista = celda;
      Celda = record
                 Elemento: T;
                 Siguiente: lista;
End;



Tipos de listas

·         Listas Simples: Se define como un conjunto de nodos uno detrás de otro, del cual siempre se puede conocer al nodo inicial y al final, de cada nodo de la lista, se conoce un contenido, que es la información que almacena dentro puede ser de cualquier tipo de dato un sucesor único excepto el ultimo nodo de la lista.

·         Listas Ordenadas: Son las que la posición de cada nodo viene determinada por el valor de uno o más campos obligatorios de información del nodo denominado clave. No se permite tener dos nodos con la misma clave.  

35 comentarios:

  1. lista es una colección ordenada de valores.

    ResponderBorrar
  2. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  3. Muy bien el contenido pero en lo personal lo entiendo mejor de esta manera...
    Una lista es una sucesión de nodos en la que a partir de un nodo se puede acceder al que ocupa la siguiente posición en la lista y para que un nodo pueda acceder al siguiente y la lista no se rompa en varias listas cada nodo tiene que tener un puntero que guarde la dirección de memoria que ocupa el siguiente elemento.

    ResponderBorrar
  4. La creacion de un blog nos faclilita la manera de aprender mas sobre la estructura de datos dinamicas de una forma interesante y original...

    ResponderBorrar
    Respuestas
    1. Si! Una herramienta muy útil y creativa :)

      Borrar
    2. se me hace mas fácil y es una manera de utilizar el internet de una forma adecuada

      Borrar
  5. me encanto esta estrategia, nos enseña a compartir temas de clases creativa y dinamicamente

    ResponderBorrar
  6. listas, es un grupo ordenado de elementos homogéneo, en la que no hay restriccion de acceso. Dicha lista es estructura dinammica lo que significa que no se puede saber exactamente cuanto elementos caben ya que su tamaño varia si se añaden o eliminan elementos a la misma

    ResponderBorrar
  7. Tambien se puede decir que una lista es una estructura de datos LINEAL con un número limitado de elementos homogéneos que se llaman nodos. Se puede acceder a estos a través de su dirección, se pueden insertar y suprimir en cualquier posición

    ResponderBorrar
  8. En las colas el primer elemento en entrar es el primero en salir

    ResponderBorrar
  9. Este blog contiene muchas cosas muy interesantes y es muy creativo el cual ayuda mucho al aprendizaje de los estudiantes y cualquier persona que quiera aprender sobre pascal

    ResponderBorrar
  10. Fue una excelente idea la creacion de este blog

    ResponderBorrar
  11. las pilas es la estructura mas utilizada en pascal y tiene dos operaciones que son PUSH y POP

    ResponderBorrar
    Respuestas
    1. este comentario esta fuera de contexto. En el blog no trabajamos pilas

      Borrar
  12. Las colas se insertan por un lugar y se extrae por otro cuando son simples

    ResponderBorrar
  13. buena estrategia la del blog, nos ayudara a conocer y a compartir todo sobre las estruturas de datos dinamicas...

    ResponderBorrar
  14. Este comentario ha sido eliminado por el autor.

    ResponderBorrar
  15. Estefany De La Torre06 febrero, 2015

    Las listas se definen como un grupo de elementos son características similares que pueden variar constantemente al introducir y eliminar dichos elementos dentro de la estructura, por lo tanto no se puede saber de antemano el tamaño de esta. Por otra parte es necesario mencionar que en este tipo de estructura se puede hacer el recorrido completo y no importa la posición en la que se introduzcan o eliminen los datos.

    ResponderBorrar
  16. la lista es una estructura de datos lineal con un número limitado de elementos homogéneos que se llaman nodos. Se puede acceder a estos a través de su dirección, se pueden insertar y suprimir en cualquier posición

    ResponderBorrar
  17. Excelente, le invito a que sigan indagando por las estructuras de datos, ya que facilita el uso de registros en los sistemas informáticos. a fin de lograr con el objetivo planteado les invito a que realicen las siguientes actividades:
    1.- Realiza un cuadro comparativo entre listas simples, listas doblemente enlazadas y listas circulares
    2.- Desarrolla un programa en Pascal que a través de un menú puedas insertar, eliminar e imprimir elementos en una lista simple y una lista circular.

    ResponderBorrar
    Respuestas
    1. Este comentario ha sido eliminado por el autor.

      Borrar
    2. link del cuadro comprarativo :p ------> http://prntscr.com/6c0kdo <------

      Borrar
  18. la cola es como un tipo de estructura de datos que almacena la informacion de manera abstracta ya que dichos datos entran por un extremo y salen por el otro extremo.
    los nodos es como un registro que contiene un dato de interes como en un caso de la vida real es la red de internet. ya que consiste en una red de ordenadores en las que cada servidor interactua y comparte informacion.
    las listas en las estructuras de datos es fundamental para ser usada en la implementacion de otras estructuras de datos... ¿como asi?... pues, ellos contienen unos nodos en las que se almacenan los datos en donde permite que el orden sea diferente a cualquier otra estructura de datos...

    ResponderBorrar
  19. Las listas son mas simples de declarar ya que en comparacion con las colas y pilas, estas te deja manipular un elemento sin importar en cual posicion se encuentre, y es por ello que no es necesaria las sentecias repetitivas en todas sus operaciones, como se puede observar en la informacion antes mencionada.

    ResponderBorrar
  20. Una lista es una estructura de datos secuencial.

    Una manera de clasificarlas es por la forma de acceder al siguiente elemento:

    - lista densa: la propia estructura determina cuál es el siguiente elemento de la lista. Ejemplo: un array.
    - lista enlazada: la posición del siguiente elemento de la estructura la determina el elemento actual. Es necesario almacenar al menos la posición de memoria del primer elemento. Además es dinámica, es decir, su tamaño cambia durante la ejecución del programa.

    Una lista enlazada se puede definir recursivamente de la siguiente manera:

    - una lista enlazada es una estructura vacía o
    - un elemento de información y un enlace hacia una lista (un nodo).

    ResponderBorrar
  21. En las listas simples los nodos se organizan de modo que cada uno apunta al siguiente, y el último no apunta a nada, es decir, el puntero del nodo siguiente vale Null.

    ResponderBorrar
  22. Estefany De La Torre07 marzo, 2015

    Aki dejo mi link del cuadro comparativo: http://prntscr.com/6e3yfb

    ResponderBorrar
  23. Los elementos de la lista se debera usar un ciclo for con una variable de control llamda renglon, misma que se usara tambien como indice de la lista.
    Para desplegar los elementos de la lista, tambien se usa un ciclo for con su variable de control renglon, tal como se muestra en el ejemplo.

    ResponderBorrar
  24. Este es el link de mi cuadro comparativo http://prntscr.com/6f9hxx

    ResponderBorrar
  25. Heily Bustillo11 marzo, 2015

    mi cuadro comparativo lo pueden encontrar aca http://prntscr.com/6for9c

    ResponderBorrar
  26. http://prntscr.com/6hrqq4

    ResponderBorrar
  27. lista:Es una estructura de datos fundamental, y puede ser usada para implementar otras estructuras de datos, consiste en una secuencia de nodos ordenados por datos homogéneos en donde no hay restricción de acceso. La lista es una estructura dinámica lo que significa que no se sabe el tamaño de la misma ya que varía si se añaden o se eliminan elementos.

    ResponderBorrar
  28. Entiendo por Listas que es una de las principales estructuras de datos, Consiste en un conjunto de nodos enlazados. las listas van se la mano junto con las colas y las pilas pero cada una tiene sus caracteristicas y funciones, existente varios tipos de listas entre ellos estas las listas simples, listas doblemente enlazadas y las listas circulares que son unas de las mas utilizadas en la programacion, La ventaja de las listas son el orden en que esta constituida tanto en los enlaces como en su almacenamiento...esta seria mi breve resumen de este tema tan extenso pero interesante como las lista y su papel en las estructuras de datos...

    ResponderBorrar
  29. No hay que olvidar que lenguajes de programación tales como Lisp y Scheme tienen listas enlazadas simples ya construidas. En muchos lenguajes de programación, estas listas están construidas por nodos, cada uno llamado cons o celda cons. Las celdas cons tienen dos campos: el car, una referencia del dato al nodo, y el cdr, una referencia al siguiente nodo. Aunque las celdas cons pueden ser usadas para construir otras estructuras de datos, este es su principal objetivo.

    ResponderBorrar
  30. La lista enlazada es un TDA que nos permite almacenar datos de una forma organizada, al igual que los vectores pero, a diferencia de estos, esta estructura es dinámica, por lo que no tenemos que saber "a priori" los elementos que puede contener.
    En una lista enlazada, cada elemento apunta al siguiente excepto el último que no tiene sucesor y el valor del enlace es null. Por ello los elementos son registros que contienen el dato a almacenar y un enlace al siguiente elemento. Los elementos de una lista, suelen recibir también el nombre de nodos de la lista.

    ResponderBorrar