Clasificación de las estructuras de datos
Estructur
as de
Datos
Interna
s
Estáticas
Simples o
Fundamental
es
Lógic
o/Bole
an
Carácte
r/Char
Entero/
Integer
Real
Compuestas o
Estructuradas
Strings Arreglos Conjuntos
Regist
ros
Archivos
Dinámica
s
Lineales
Lista
s
Pilas Colas
No
lineales
Árboles Gráfos
Externa
s
Bases de
datos
Archivo
s
 Estructura de Datos:
 Es una clase de datos que se puede caracterizar por su organización y operaciones definidas
sobre ella.
 En un lenguaje de programación, un tipo de dato está definido por el conjunto de valores que
representa y por el conjunto de operaciones que se pueden realizar con dicho tipo de dato.
Las estructuras de datos estáticas:
 Tienen un número fijo de elementos que queda determinado desde
la declaración de la estructura en el comienzo del programa.
 Las estructuras de datos estáticas simples:
 Son aquellas que no están compuestas por otras estructuras de datos, abarcan solo una
casilla de la memoria.
 Lógico, Carácter, Entero, Real .
 Las estructuras de datos estáticas Compuestas:
 Abarcan mas de una casilla de memoria.
 Strings, Arreglos, Conjuntos, Registros, Archivos.
Las estructuras de datos dinámicas:
 Nos permiten lograr un importante objetivo de la programación
orientada a objetos: la reutilización de objetos.
 Lineales:
 En este tipo de estructuras los elementos se encuentran ubicados
secuencialmente.
 Pilas, Colas, Listas.
 No Lineales:
 En este tipo de estructuras los elementos no se encuentran ubicados
secuencialmente.
 Árboles y Gráfos.
Es aquel definido por el programador que puede ser manipulado de una manera similar
a los definidos por el sistema.
Un tipo de dato abstracto corresponde a un conjunto (tal vez tamaño infinito) de valores
lícitos y de un número de operaciones primitivas que pueden ejecutarse sobre ellos. El
usuario puede crear variables con valores que fluctúen dentro del conjunto aceptado y
actuar sobre dichos valores por medio de las operaciones definidas.
Existen dos tipos de TDA’s:
 Los Datos Estáticos.
 Los Datos Dinámicos.
 su tamaño y forma es constante durante la ejecución de un programa y por tanto se
determinan en tiempo de compilación.
 Tienen el problema de que hay que dimensionar la estructura de antemano, lo que
puede conllevar desperdicio o falta de memoria.
 Ejemplos:
 Array: La estructura de datos más simple es el array lineal (o unidimensional). Un array
lineal es una lista de números finitos de datos similares, referenciados por medio de un
conjunto de “n” números consecutivos.
 Registros: Es un tipo de dato estructurado formado por la unión de varios elementos bajo una
misma estructura.
 Otros ejemplos podrían ser los archivos o las cadenas.
 su tamaño y forma es variable (o puede serlo) a lo largo de un programa, por lo que se
crean y destruyen en tiempo de ejecución. Esto permite dimensionar la estructura de
datos de una forma precisa: se va asignando memoria en tiempo de ejecución según se
va necesitando.
 Ejemplos:
 Pilas: También denominada sistema último-dentro primero-fuera (LIFO), es una lista lineal
en la cual las inserciones y extracciones tienen lugar sólo por un extremo llamado cúspide.
 Colas: también denominada sistema primero-dentro primero-fuera (FIFO), es una lista lineal
en la cual las extracciones se realizan siempre por un extremo llamado frente y las
inserciones por el extremo contrario llamado final de la lista.
 Grafos: Los datos contienen, en algunos casos, relaciones entre ellos que no es
necesariamente jerárquica. La estructura de datos que refleja esta relación recibe el nombre
de grafo.
 Es un espacio de almacenamiento que ya está definido desde el principio de
ejecución del programa.
 Para que un objeto pueda ser almacenado en memoria estática su tamaño (número
de bytes necesarios para su almacenamiento) ha de ser conocido en tiempo de
compilación.
 Es un espacio de almacenamiento que se solicita en tiempo de ejecución. De esa
manera, a medida que el proceso va necesitando espacio para más líneas, va
solicitando más memoria al sistema operativo para guardarlas.
 Hace referencia a los factores que intervienen al momento de ejecución de un
programa y su relación con la duración de este. Se tiene que tomar en cuenta
circunstancias como:
 La velocidad de procesamiento.
 Características del programa.
 Tamaño y la calidad del código elaborado.
 Hace referencia a la memoria que utiliza un programa para su ejecución. Lo que
implica que la eficiencia en memoria de un algoritmo lo indica la cantidad de
espacio requerido para ejecutarlo, es decir, el espacio memoria que ocupan todas
las variables propias del algoritmo.
 Un algoritmo será más eficiente comparado con otro, siempre que consuma menos
recursos, como el tiempo y espacio de memoria necesarios para ejecutarlo.
 La complejidad de un algoritmo es aquella función que da el tiempo de y el espacio
utilizado por el algoritmo en función del tamaño de la entrada.
 En general, si aumentamos el espacio necesario para almacenar los datos,
conseguiremos un mejor rendimiento en el tiempo y viceversa.

1.- Introducción a la estructura de datos.pptx

  • 1.
    Clasificación de lasestructuras de datos
  • 2.
    Estructur as de Datos Interna s Estáticas Simples o Fundamental es Lógic o/Bole an Carácte r/Char Entero/ Integer Real Compuestaso Estructuradas Strings Arreglos Conjuntos Regist ros Archivos Dinámica s Lineales Lista s Pilas Colas No lineales Árboles Gráfos Externa s Bases de datos Archivo s
  • 3.
     Estructura deDatos:  Es una clase de datos que se puede caracterizar por su organización y operaciones definidas sobre ella.  En un lenguaje de programación, un tipo de dato está definido por el conjunto de valores que representa y por el conjunto de operaciones que se pueden realizar con dicho tipo de dato. Las estructuras de datos estáticas:  Tienen un número fijo de elementos que queda determinado desde la declaración de la estructura en el comienzo del programa.  Las estructuras de datos estáticas simples:  Son aquellas que no están compuestas por otras estructuras de datos, abarcan solo una casilla de la memoria.  Lógico, Carácter, Entero, Real .  Las estructuras de datos estáticas Compuestas:  Abarcan mas de una casilla de memoria.  Strings, Arreglos, Conjuntos, Registros, Archivos.
  • 4.
    Las estructuras dedatos dinámicas:  Nos permiten lograr un importante objetivo de la programación orientada a objetos: la reutilización de objetos.  Lineales:  En este tipo de estructuras los elementos se encuentran ubicados secuencialmente.  Pilas, Colas, Listas.  No Lineales:  En este tipo de estructuras los elementos no se encuentran ubicados secuencialmente.  Árboles y Gráfos.
  • 5.
    Es aquel definidopor el programador que puede ser manipulado de una manera similar a los definidos por el sistema. Un tipo de dato abstracto corresponde a un conjunto (tal vez tamaño infinito) de valores lícitos y de un número de operaciones primitivas que pueden ejecutarse sobre ellos. El usuario puede crear variables con valores que fluctúen dentro del conjunto aceptado y actuar sobre dichos valores por medio de las operaciones definidas. Existen dos tipos de TDA’s:  Los Datos Estáticos.  Los Datos Dinámicos.
  • 6.
     su tamañoy forma es constante durante la ejecución de un programa y por tanto se determinan en tiempo de compilación.  Tienen el problema de que hay que dimensionar la estructura de antemano, lo que puede conllevar desperdicio o falta de memoria.  Ejemplos:  Array: La estructura de datos más simple es el array lineal (o unidimensional). Un array lineal es una lista de números finitos de datos similares, referenciados por medio de un conjunto de “n” números consecutivos.  Registros: Es un tipo de dato estructurado formado por la unión de varios elementos bajo una misma estructura.  Otros ejemplos podrían ser los archivos o las cadenas.
  • 7.
     su tamañoy forma es variable (o puede serlo) a lo largo de un programa, por lo que se crean y destruyen en tiempo de ejecución. Esto permite dimensionar la estructura de datos de una forma precisa: se va asignando memoria en tiempo de ejecución según se va necesitando.  Ejemplos:  Pilas: También denominada sistema último-dentro primero-fuera (LIFO), es una lista lineal en la cual las inserciones y extracciones tienen lugar sólo por un extremo llamado cúspide.  Colas: también denominada sistema primero-dentro primero-fuera (FIFO), es una lista lineal en la cual las extracciones se realizan siempre por un extremo llamado frente y las inserciones por el extremo contrario llamado final de la lista.  Grafos: Los datos contienen, en algunos casos, relaciones entre ellos que no es necesariamente jerárquica. La estructura de datos que refleja esta relación recibe el nombre de grafo.
  • 8.
     Es unespacio de almacenamiento que ya está definido desde el principio de ejecución del programa.  Para que un objeto pueda ser almacenado en memoria estática su tamaño (número de bytes necesarios para su almacenamiento) ha de ser conocido en tiempo de compilación.
  • 9.
     Es unespacio de almacenamiento que se solicita en tiempo de ejecución. De esa manera, a medida que el proceso va necesitando espacio para más líneas, va solicitando más memoria al sistema operativo para guardarlas.
  • 10.
     Hace referenciaa los factores que intervienen al momento de ejecución de un programa y su relación con la duración de este. Se tiene que tomar en cuenta circunstancias como:  La velocidad de procesamiento.  Características del programa.  Tamaño y la calidad del código elaborado.
  • 11.
     Hace referenciaa la memoria que utiliza un programa para su ejecución. Lo que implica que la eficiencia en memoria de un algoritmo lo indica la cantidad de espacio requerido para ejecutarlo, es decir, el espacio memoria que ocupan todas las variables propias del algoritmo.
  • 12.
     Un algoritmoserá más eficiente comparado con otro, siempre que consuma menos recursos, como el tiempo y espacio de memoria necesarios para ejecutarlo.  La complejidad de un algoritmo es aquella función que da el tiempo de y el espacio utilizado por el algoritmo en función del tamaño de la entrada.  En general, si aumentamos el espacio necesario para almacenar los datos, conseguiremos un mejor rendimiento en el tiempo y viceversa.