SlideShare una empresa de Scribd logo
1 de 5
ESTRUCTURAS DE DATOS




 UNIDAD 3 ESTRUCTURAS LINEALES ESTATICAS Y DINAMICAS
Una Estructura de datos, es una colección de datos almacenados, que se caracteriza por su
organización y las operaciones que la componen. Una estructura de datos esta compuesta por
tipos de datos simples o primitivos (entero, real, carácter, etc.).

Las estructuras de datos se organizan de forma Estática y Dinámica.

    •   Las Estructuras de datos Estáticas, son aquellas en las que el tamaño ocupado en
        memoria se define al tiempo de compilación, es decir, antes de la ejecución del
        programa, y no podrá ser cambiado durante ella.

    •   Las Estructuras de datos Dinámicas, no tienen limitaciones en la asignación de
        memoria, ya que esta se define durante la ejecución del programa.

Las estructuras de datos pueden ser Lineales y no Lineales, las primera se refieren a que los
elementos se encuentran posicionados lógicamente de manera secuencial uno tras otro, y las
no lineales son aquellas en que después de un elemento se encuentran posicionados más de
uno.

Entre las Estructuras Lineales se encuentran las Pilas, Colas y Listas.



                                             PILAS

La Pila es una estructura de datos lineal que puede organizarse de manera estática o dinámica.
Se caracteriza por tener un mecanismo llamado LIFO (Last Input, First Output) que permite
realizar operaciones de inserción y eliminación de manera que el último en entrar, es el
primero en salir. Las entradas y salidas de datos se realizan por uno de sus extremos llamado
Tope.

La mayoría de lenguajes disponen de un tipo de dato Pila( Stack), sin embargo, es necesario
conocer su manipulación ya sea mediante memoria estática o dinámica.

Mediante memoria estática la forma de representar una pila es mediante un vector. Para
representarla como estructura dinámica, se usan Listas Enlazadas o Ligadas.

Representación grafica (Estática)

                                               4 40                       Tope

                                               3 35

                                               2 20

                                               1 15




                                                                                            1
ESTRUCTURAS DE DATOS




                                                                                             Pil
                                                                                             a




                                                                                             (St
                                                                                             ack
                                                                                             )




 Operaciones primitivas

   1. INSERCIÓN. Consiste en agregar datos o elementos a una pila incrementando el tope
      de esta, y la operación se conoce como push. Cuando se trata de una pila estática, la
      operación se puede realizar siempre y cuando exista espacio en la pila.

   2. ELIMINACIÓN. La supresión de un dato es conocida como operación pop, y una vez
      eliminado el dato, el tope debe decrementarse. Para realizar esta operación la Pila
      debe tener al menos un elemento.

   3. OBTENER ELEMENTO EN EL TOPE. Es la operación llamada stacktop, y permite
      obtener el dato que se encuentra al tope, sin eliminarlo de la pila. Al igual que la
      operación anterior, para realizarla, la Pila debe tener al menos un elemento.

   4. PILA VACÍA. Permite saber si la Pila está vacía para poder realizar otras operaciones.
      La operación retorna un valor verdadero si efectivamente la Pila se encuentra vacía, y
      se conoce como empty.

Además de estas operaciones, cuando se trata de una Pila Estática, se debe definir la
operación para saber si la Pila está llena, ya que tendremos la limitación de memoria.

                                            COLAS

Una cola es una estructura de datos lineal. El mecanismo que identifica a una cola es conocido
como FIFO (Fisrt Input First Output), es decir el primer elemento que se inserta a una cola es
el primero en salir. Los extremos por donde se realizan las operaciones de entrada y salida,
son llamados fin y frente, consecutivamente.

                                                                                               2
ESTRUCTURAS DE DATOS



Existen diversos tipos de colas:

   1. La cola circular: Es aquella que representa a la estructura de datos como un círculo y
      no como una línea recta. Esta representación soluciona el problema de espacio
      desaprovechado que se presenta en una cola estática considerada como línea recta.


             3
                             Fin
             30    40
                         4
        2
             25    20
                             Frente
                   1



   2. La bicola o cola doble: Es aquella en la que las inserciones y las eliminaciones se
      pueden realizar por cualquiera de sus dos extremos. Existen dos tipos de bicolas:

            a) Bicola de entrada restringida: Es aquella que acepta inserciones solo al final de
               la cola y acepta eliminaciones tanto por el frente como en el fin.

            b) Bicola de salida restringida: Es aquella que acepta eliminaciones solo por el
               frente e inserciones tanto por el final como por el frente.



   3. Cola de prioridades: Es aquella en la que el orden de sus elementos determina el
      resultado de sus operaciones básicas hay dos tipos de colas de prioridades:

            a) Cola de prioridad ascendente: Es aquella en que los elementos se pueden
               insertar de manera arbitraria haciendo que estos lleven un orden ascendente
               por lo que eliminación (por el frente), es del elemento menor.

            b) Cola de prioridad descendente: Es aquella en la que los elementos se insertan
               de manera arbitraria siempre y cuando el orden de estos quede descendente
               por lo que la eliminación será del elemento mayor.

Operaciones Primitivas o Básicas

   1. Insertar un elemento. Agrega por el extremo del fin un elemento a la Cola. El nombre
      puede variar, pero en general es la operación insert.

   2.    Eliminación de un elemento. Remueve el elemento del frente de la cola. Operación
        remove.

   3.   Cola Vacía . Determina si la estructura está vacía. Operación empty.

De la misma forma que se utilizan las Pilas, será necesario crear la operación de Cola llena, si
se trata de una estructura estática.
                                                                                                   3
ESTRUCTURAS DE DATOS



Se debe tener cuidado en validar las operaciones, checando que estas sí se puedan realizar
para evitar errores.



                                     LISTAS ENLAZADAS

Una lista enlazada o ligada, es una estructura de datos lineal dinámica.

Una lista enlazada se caracteriza porque los elementos se almacenan en posiciones de
memoria que no son contiguas, por lo que cada elemento necesita almacenar la referencia
(dirección de memoria) del siguiente elemento de la lista. Existen Listas Simples, Dobles,
Simple Circular y Doble Circular.

Esta forma de almacenamiento y organización de datos resulta la más adecuada si el número
de elementos a almacenar es impredecible, ya que no hay un límite preestablecido para el uso
de memoria.

Una lista de este tipo se comporta de acuerdo a las necesidades de la aplicación. Es decir no
existen operaciones específicas para una lista, mediante Listas Enlazadas se pueden
representar Pilas y Colas.

Lista Simple

Una lista enlazada Simple se construye vinculando objetos, llamados Nodos, que contienen al
menos un miembro para la información y un miembro que es una referencia a otro objeto de
su mismo tipo, de modo que el último nodo en la lista no contiene otra referencia, sino un
valor nulo. Una lista Simple, contiene la referencia al primer objeto o nodo, que es el inicio de
la lista.

Representación gráfica:

Inicio = 1008

            1008
                                                             1002
                30
                                                                10
            1010
                                                              Null


                                   1010

                                      20
                                      Nodo
                                   1002




Lista Doble
                                                                                               4
ESTRUCTURAS DE DATOS



 Una lista ligada simple restringe el recorrido por los nodos hacia una sola dirección, así como
 dificulta la operación de eliminación de un nodo. Estos inconvenientes desaparecen si se
 utiliza una lista doblemente ligada.

 Una lista doble es aquella donde cada nodo tiene un par de miembros que contienen
 referencias de enlace. Un enlace permite recorrer la lista hacia adelante, mientras que el otro
 permite hacerlo hacia atrás.

 Para que esto tenga sentido la lista puede definir dos referencias, la del nodo inicial y la del
 nodo final.

 Representación gráfica:

                      1010                      1050                     1030

                        100                      200                      300

                        null                    1010                     1050

                      1050                      1030                       null


inicio=1010

fin=1030
     ant

     sig




                                                                                               5

Más contenido relacionado

La actualidad más candente

Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoJosé Antonio Sandoval Acosta
 
Importancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datosImportancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datospepelebu1313
 
Estructuras lineales unidad 3
Estructuras lineales unidad 3Estructuras lineales unidad 3
Estructuras lineales unidad 3eliezerbs
 
Archivo Secuencial-Indexado
Archivo Secuencial-IndexadoArchivo Secuencial-Indexado
Archivo Secuencial-Indexadoluismy_martinez
 
Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesJosé Antonio Sandoval Acosta
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos Kaneki04
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacionLuis Igoodbad
 
Importancia de las listas Estructura de datos.
Importancia de las listas Estructura de datos.Importancia de las listas Estructura de datos.
Importancia de las listas Estructura de datos.xaviercamposm
 

La actualidad más candente (20)

Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4Arboles M-Way, 2-3 y 2-3-4
Arboles M-Way, 2-3 y 2-3-4
 
Recursividad
RecursividadRecursividad
Recursividad
 
Estructura datos pilas y colas
Estructura datos pilas y colasEstructura datos pilas y colas
Estructura datos pilas y colas
 
Colas
ColasColas
Colas
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Búsqueda secuencial y binaria
Búsqueda secuencial y binariaBúsqueda secuencial y binaria
Búsqueda secuencial y binaria
 
Ordenamiento QuickSort
Ordenamiento QuickSortOrdenamiento QuickSort
Ordenamiento QuickSort
 
Importancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datosImportancia de la implementación de las listas para la estructura de datos
Importancia de la implementación de las listas para la estructura de datos
 
Listas
ListasListas
Listas
 
Estructuras lineales unidad 3
Estructuras lineales unidad 3Estructuras lineales unidad 3
Estructuras lineales unidad 3
 
Algoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externoAlgoritmos de Ordenamiento externo
Algoritmos de Ordenamiento externo
 
Archivo Secuencial-Indexado
Archivo Secuencial-IndexadoArchivo Secuencial-Indexado
Archivo Secuencial-Indexado
 
Metodos de ordenamiento
Metodos de ordenamientoMetodos de ordenamiento
Metodos de ordenamiento
 
Estructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras LinealesEstructura de Datos -Unidad III: Estructuras Lineales
Estructura de Datos -Unidad III: Estructuras Lineales
 
Arboles - estructura de datos
Arboles - estructura de datos Arboles - estructura de datos
Arboles - estructura de datos
 
Listas enlazadas
Listas enlazadasListas enlazadas
Listas enlazadas
 
Colas en programacion
Colas en programacionColas en programacion
Colas en programacion
 
Importancia de las listas Estructura de datos.
Importancia de las listas Estructura de datos.Importancia de las listas Estructura de datos.
Importancia de las listas Estructura de datos.
 

Similar a Unidad 3 estructuras lineales estaticas y dinamicas

Similar a Unidad 3 estructuras lineales estaticas y dinamicas (20)

Listas de Java
Listas de JavaListas de Java
Listas de Java
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos.vrb
Estructura de datos.vrbEstructura de datos.vrb
Estructura de datos.vrb
 
Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)Estructura de datos - Unidad 3 Estructuras Lineales (POO)
Estructura de datos - Unidad 3 Estructuras Lineales (POO)
 
Darwin rodriguez 12-0861_pilasy_colas
Darwin rodriguez 12-0861_pilasy_colasDarwin rodriguez 12-0861_pilasy_colas
Darwin rodriguez 12-0861_pilasy_colas
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Estructura de Datos - Unidad III Estructuras Lineales
Estructura de Datos - Unidad III Estructuras LinealesEstructura de Datos - Unidad III Estructuras Lineales
Estructura de Datos - Unidad III Estructuras Lineales
 
Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314Listas pilascolas edward.mejia-10-1314
Listas pilascolas edward.mejia-10-1314
 
ED
EDED
ED
 
Estructura de datos
Estructura de datosEstructura de datos
Estructura de datos
 
Colas y listas generales
Colas y listas generalesColas y listas generales
Colas y listas generales
 
Listas
ListasListas
Listas
 
Estructuras lineales
Estructuras linealesEstructuras lineales
Estructuras lineales
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Listas, pilas y colas
Listas, pilas y colasListas, pilas y colas
Listas, pilas y colas
 
Diapositiva de l estructura de datos
Diapositiva de l estructura de datosDiapositiva de l estructura de datos
Diapositiva de l estructura de datos
 
UNIDAD II
UNIDAD IIUNIDAD II
UNIDAD II
 
Sesion n°1 estructura de datos
Sesion n°1 estructura de datosSesion n°1 estructura de datos
Sesion n°1 estructura de datos
 

Más de rehoscript

Practicas oracle10g
Practicas oracle10gPracticas oracle10g
Practicas oracle10grehoscript
 
Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807rehoscript
 
Unidad 8 metodos_de_busqueda
Unidad 8 metodos_de_busquedaUnidad 8 metodos_de_busqueda
Unidad 8 metodos_de_busquedarehoscript
 
Unidad 6 ordenacion_interna
Unidad 6 ordenacion_internaUnidad 6 ordenacion_interna
Unidad 6 ordenacion_internarehoscript
 
Unidad 5 est. dat estruc. no lineal
Unidad 5 est. dat estruc. no linealUnidad 5 est. dat estruc. no lineal
Unidad 5 est. dat estruc. no linealrehoscript
 
Unidad 4 est. dat. recursividad
Unidad 4  est. dat. recursividadUnidad 4  est. dat. recursividad
Unidad 4 est. dat. recursividadrehoscript
 
Unidad 2 Manejo de memoria
Unidad 2 Manejo de memoriaUnidad 2 Manejo de memoria
Unidad 2 Manejo de memoriarehoscript
 
Unidad 7 ordenacion_externa
Unidad 7 ordenacion_externaUnidad 7 ordenacion_externa
Unidad 7 ordenacion_externarehoscript
 
Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmosrehoscript
 
Lenguajes Decidibles
Lenguajes DecidiblesLenguajes Decidibles
Lenguajes Decidiblesrehoscript
 
Programación
 Programación Programación
Programaciónrehoscript
 
Reseña y ensayo
Reseña y ensayoReseña y ensayo
Reseña y ensayorehoscript
 
Protocolo de investigacion
Protocolo de investigacionProtocolo de investigacion
Protocolo de investigacionrehoscript
 
Tipos de entrevista
Tipos de entrevistaTipos de entrevista
Tipos de entrevistarehoscript
 
Investigacion documental
Investigacion documentalInvestigacion documental
Investigacion documentalrehoscript
 
Maquinas Virtuales
Maquinas VirtualesMaquinas Virtuales
Maquinas Virtualesrehoscript
 
Arquitectura P2P
Arquitectura P2PArquitectura P2P
Arquitectura P2Prehoscript
 
Arquitectura dirigida a eventos
Arquitectura dirigida a eventosArquitectura dirigida a eventos
Arquitectura dirigida a eventosrehoscript
 
Arquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositórioArquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositóriorehoscript
 

Más de rehoscript (20)

Practicas oracle10g
Practicas oracle10gPracticas oracle10g
Practicas oracle10g
 
Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807Virtual dev-day-java7-keynote-1641807
Virtual dev-day-java7-keynote-1641807
 
Unidad 8 metodos_de_busqueda
Unidad 8 metodos_de_busquedaUnidad 8 metodos_de_busqueda
Unidad 8 metodos_de_busqueda
 
Unidad 6 ordenacion_interna
Unidad 6 ordenacion_internaUnidad 6 ordenacion_interna
Unidad 6 ordenacion_interna
 
Unidad 5 est. dat estruc. no lineal
Unidad 5 est. dat estruc. no linealUnidad 5 est. dat estruc. no lineal
Unidad 5 est. dat estruc. no lineal
 
Unidad 4 est. dat. recursividad
Unidad 4  est. dat. recursividadUnidad 4  est. dat. recursividad
Unidad 4 est. dat. recursividad
 
Unidad 2 Manejo de memoria
Unidad 2 Manejo de memoriaUnidad 2 Manejo de memoria
Unidad 2 Manejo de memoria
 
Unidad 7 ordenacion_externa
Unidad 7 ordenacion_externaUnidad 7 ordenacion_externa
Unidad 7 ordenacion_externa
 
Analisis de algoritmos
Analisis de algoritmosAnalisis de algoritmos
Analisis de algoritmos
 
Lenguajes Decidibles
Lenguajes DecidiblesLenguajes Decidibles
Lenguajes Decidibles
 
Claselexico
ClaselexicoClaselexico
Claselexico
 
Programación
 Programación Programación
Programación
 
Reseña y ensayo
Reseña y ensayoReseña y ensayo
Reseña y ensayo
 
Protocolo de investigacion
Protocolo de investigacionProtocolo de investigacion
Protocolo de investigacion
 
Tipos de entrevista
Tipos de entrevistaTipos de entrevista
Tipos de entrevista
 
Investigacion documental
Investigacion documentalInvestigacion documental
Investigacion documental
 
Maquinas Virtuales
Maquinas VirtualesMaquinas Virtuales
Maquinas Virtuales
 
Arquitectura P2P
Arquitectura P2PArquitectura P2P
Arquitectura P2P
 
Arquitectura dirigida a eventos
Arquitectura dirigida a eventosArquitectura dirigida a eventos
Arquitectura dirigida a eventos
 
Arquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositórioArquitecturas de pizarra o repositório
Arquitecturas de pizarra o repositório
 

Unidad 3 estructuras lineales estaticas y dinamicas

  • 1. ESTRUCTURAS DE DATOS UNIDAD 3 ESTRUCTURAS LINEALES ESTATICAS Y DINAMICAS Una Estructura de datos, es una colección de datos almacenados, que se caracteriza por su organización y las operaciones que la componen. Una estructura de datos esta compuesta por tipos de datos simples o primitivos (entero, real, carácter, etc.). Las estructuras de datos se organizan de forma Estática y Dinámica. • Las Estructuras de datos Estáticas, son aquellas en las que el tamaño ocupado en memoria se define al tiempo de compilación, es decir, antes de la ejecución del programa, y no podrá ser cambiado durante ella. • Las Estructuras de datos Dinámicas, no tienen limitaciones en la asignación de memoria, ya que esta se define durante la ejecución del programa. Las estructuras de datos pueden ser Lineales y no Lineales, las primera se refieren a que los elementos se encuentran posicionados lógicamente de manera secuencial uno tras otro, y las no lineales son aquellas en que después de un elemento se encuentran posicionados más de uno. Entre las Estructuras Lineales se encuentran las Pilas, Colas y Listas. PILAS La Pila es una estructura de datos lineal que puede organizarse de manera estática o dinámica. Se caracteriza por tener un mecanismo llamado LIFO (Last Input, First Output) que permite realizar operaciones de inserción y eliminación de manera que el último en entrar, es el primero en salir. Las entradas y salidas de datos se realizan por uno de sus extremos llamado Tope. La mayoría de lenguajes disponen de un tipo de dato Pila( Stack), sin embargo, es necesario conocer su manipulación ya sea mediante memoria estática o dinámica. Mediante memoria estática la forma de representar una pila es mediante un vector. Para representarla como estructura dinámica, se usan Listas Enlazadas o Ligadas. Representación grafica (Estática) 4 40 Tope 3 35 2 20 1 15 1
  • 2. ESTRUCTURAS DE DATOS Pil a (St ack ) Operaciones primitivas 1. INSERCIÓN. Consiste en agregar datos o elementos a una pila incrementando el tope de esta, y la operación se conoce como push. Cuando se trata de una pila estática, la operación se puede realizar siempre y cuando exista espacio en la pila. 2. ELIMINACIÓN. La supresión de un dato es conocida como operación pop, y una vez eliminado el dato, el tope debe decrementarse. Para realizar esta operación la Pila debe tener al menos un elemento. 3. OBTENER ELEMENTO EN EL TOPE. Es la operación llamada stacktop, y permite obtener el dato que se encuentra al tope, sin eliminarlo de la pila. Al igual que la operación anterior, para realizarla, la Pila debe tener al menos un elemento. 4. PILA VACÍA. Permite saber si la Pila está vacía para poder realizar otras operaciones. La operación retorna un valor verdadero si efectivamente la Pila se encuentra vacía, y se conoce como empty. Además de estas operaciones, cuando se trata de una Pila Estática, se debe definir la operación para saber si la Pila está llena, ya que tendremos la limitación de memoria. COLAS Una cola es una estructura de datos lineal. El mecanismo que identifica a una cola es conocido como FIFO (Fisrt Input First Output), es decir el primer elemento que se inserta a una cola es el primero en salir. Los extremos por donde se realizan las operaciones de entrada y salida, son llamados fin y frente, consecutivamente. 2
  • 3. ESTRUCTURAS DE DATOS Existen diversos tipos de colas: 1. La cola circular: Es aquella que representa a la estructura de datos como un círculo y no como una línea recta. Esta representación soluciona el problema de espacio desaprovechado que se presenta en una cola estática considerada como línea recta. 3 Fin 30 40 4 2 25 20 Frente 1 2. La bicola o cola doble: Es aquella en la que las inserciones y las eliminaciones se pueden realizar por cualquiera de sus dos extremos. Existen dos tipos de bicolas: a) Bicola de entrada restringida: Es aquella que acepta inserciones solo al final de la cola y acepta eliminaciones tanto por el frente como en el fin. b) Bicola de salida restringida: Es aquella que acepta eliminaciones solo por el frente e inserciones tanto por el final como por el frente. 3. Cola de prioridades: Es aquella en la que el orden de sus elementos determina el resultado de sus operaciones básicas hay dos tipos de colas de prioridades: a) Cola de prioridad ascendente: Es aquella en que los elementos se pueden insertar de manera arbitraria haciendo que estos lleven un orden ascendente por lo que eliminación (por el frente), es del elemento menor. b) Cola de prioridad descendente: Es aquella en la que los elementos se insertan de manera arbitraria siempre y cuando el orden de estos quede descendente por lo que la eliminación será del elemento mayor. Operaciones Primitivas o Básicas 1. Insertar un elemento. Agrega por el extremo del fin un elemento a la Cola. El nombre puede variar, pero en general es la operación insert. 2. Eliminación de un elemento. Remueve el elemento del frente de la cola. Operación remove. 3. Cola Vacía . Determina si la estructura está vacía. Operación empty. De la misma forma que se utilizan las Pilas, será necesario crear la operación de Cola llena, si se trata de una estructura estática. 3
  • 4. ESTRUCTURAS DE DATOS Se debe tener cuidado en validar las operaciones, checando que estas sí se puedan realizar para evitar errores. LISTAS ENLAZADAS Una lista enlazada o ligada, es una estructura de datos lineal dinámica. Una lista enlazada se caracteriza porque los elementos se almacenan en posiciones de memoria que no son contiguas, por lo que cada elemento necesita almacenar la referencia (dirección de memoria) del siguiente elemento de la lista. Existen Listas Simples, Dobles, Simple Circular y Doble Circular. Esta forma de almacenamiento y organización de datos resulta la más adecuada si el número de elementos a almacenar es impredecible, ya que no hay un límite preestablecido para el uso de memoria. Una lista de este tipo se comporta de acuerdo a las necesidades de la aplicación. Es decir no existen operaciones específicas para una lista, mediante Listas Enlazadas se pueden representar Pilas y Colas. Lista Simple Una lista enlazada Simple se construye vinculando objetos, llamados Nodos, que contienen al menos un miembro para la información y un miembro que es una referencia a otro objeto de su mismo tipo, de modo que el último nodo en la lista no contiene otra referencia, sino un valor nulo. Una lista Simple, contiene la referencia al primer objeto o nodo, que es el inicio de la lista. Representación gráfica: Inicio = 1008 1008 1002 30 10 1010 Null 1010 20 Nodo 1002 Lista Doble 4
  • 5. ESTRUCTURAS DE DATOS Una lista ligada simple restringe el recorrido por los nodos hacia una sola dirección, así como dificulta la operación de eliminación de un nodo. Estos inconvenientes desaparecen si se utiliza una lista doblemente ligada. Una lista doble es aquella donde cada nodo tiene un par de miembros que contienen referencias de enlace. Un enlace permite recorrer la lista hacia adelante, mientras que el otro permite hacerlo hacia atrás. Para que esto tenga sentido la lista puede definir dos referencias, la del nodo inicial y la del nodo final. Representación gráfica: 1010 1050 1030 100 200 300 null 1010 1050 1050 1030 null inicio=1010 fin=1030 ant sig 5