Está en la página 1de 39

CENTRO TECNOLÓGICO INDUSTRIAL Y DE SERVICIOS No.

TECNOLOGÍAS DE LA INFORMACIÓN Y LA
COMUNICACIÓN.

Trabajo de Investigación que presenta el Alumno Eber Abdiel Vasconcelos Tec


cómo requerimiento de la calificación de la Materia “APLICA ESTRUCTURAS DE
CONTROL EN UN LENGUAJE DE PROGRAMACIÓN” presentado al L.I. Carlos
Manuel Chablé Coj; Profesor de la asignatura para obtener la calificación del
Primer parcial.
INTRODUCCIÓN.

Datos, estructura de datos, estructuras estáticas, programación modular, son


conceptos que muchas veces no conocemos, o que aún no hemos comprendido,
pero son muy usados o recurrentes en el ámbito de la programación, por eso, a
través de esta investigación, veremos y conoceremos estos puntos,
averiguaremos que son, cuál es su función, tal vez incluso su historia.

Es importante saber y conocer estos conceptos, para que, a la hora de programar,


podamos emplearlos correctamente, y puedan facilitarnos más nuestro flujo de
trabajo, por eso te invito a conocer cada uno de estos a través de esta investiga,
muchas gracias.
Contenido
INRODUCCIÓN...............................................................................................................................2
¿QUÉ ES LA ESTRUCTURA DE DATOS?................................................................................4
¿QUÉ SON LAS ESTRUCTURAS DE DATOS DINÁMICOS?................................................8
¿QUÉ SON LAS ESTRUCTURAS DE DATOS ESTATICAS?..............................................10
¿QUÉ ES LA PROGRAMACIÓN MODULAR?........................................................................12
¿QUÉ ES UN COMPILADOR?...................................................................................................15
DIFERENCIAS ENTRE UN PROGRAMA TRANSPORTABLE O CORTABLE..................18
¿A QUÉ SE REFIERE EL TÉRMINO DE PROGRAMACIÓN ESTRUCTURADA?............20
MENCIONA LO TIPOS DE ESTRUCTURA DE DATOS QUE EXISTEN Y DEFINALAS. 23
¿PARA QUE SIRVEN LAS ESTRUCTURAS DE DATOS?...................................................26
¿COMO SE CLASIFICAN LAS ESTRUCTURAS DE DATOS DE DATOS?......................27
¿QUÉ SON LOS DATOS ESTRUCTURADOS?......................................................................29
¿QUÉ SON LAS ESTRUCTURAS DE DATOS CONTINUAS?.............................................30
HISTORIA DE LA ESTRUCTURA DE DATOS........................................................................31
CARACTERÍSTICAS DE LA ESTRUCTURA DE DATOS.....................................................32
VENTAJAS Y DESVENTAJAS DE LAS ESTRUCTURAS DE DATOS...............................33
CONCLUSIÓN...............................................................................................................................34
BIBLIOGRAFÍA.............................................................................................................................35
GLOSARIO DE TÉRMINOS........................................................................................................37
¿QUÉ ES LA ESTRUCTURA DE DATOS?

Cuando hablamos de programación, la estructura de datos está representada por


una forma determinada que tenemos de organizar los datos de un equipo
informático para que podamos utilizarlos de la manera más efectiva posible.
Dependiendo del tipo de aplicación o recurso que vayamos a usar
requeriremos una estructura de datos independiente y distinta a las demás, dado
que cada una encaja en el contexto de forma determinada y con una serie de
objetivos.

Con estas estructuras tenemos la posibilidad de administrar todo tipo de datos sin
ningún tipo de obstáculo, algo que en la actualidad se usa en la red para poder
llevar a cabo, por ejemplo, los sistemas de indexado de contenidos. Y también
juegan un papel clave en la creación de los mejores algoritmos, así como en su
uso con lenguajes de programación que se benefician de ellas.

Una “estructura de datos” es una colección de valores, la relación que existe entre
estos valores y las operaciones que podemos hacer sobre ellos; en pocas
palabras se refiere a cómo los datos están organizados y cómo se pueden
administrar.

Los principales tipos de estructura de datos


Dependiendo de su finalidad hay distintos tipos de estructura de datos que pueden
utilizarse y que aportan unas características determinadas en cada uno de los
casos.

 Uno de los tipos más utilizados es el registro, un tipo de estructura


que reúne datos que han sido agregados. Con este tipo de estructura
lo que hacemos es unificar un valor con otra serie de valores
relacionados formando una secuencia.
 También existe el vector, que concentra elementos dando lugar a una
estructura ordenada y relacionada. Sus datos coinciden en formar
parte de un tipo concreto y en estar colocados en un orden determinado.
Para una mejor facilidad de uso se aplican palabras de memoria que
ayudan a su organización, mientras que también hay que tener en
cuenta que es factible que los arreglos puedan sufrir cambios de
tamaño. De forma derivada el vector asociativo permite que sean
eliminados pares nombre-valor dependiendo de las exigencias del
programador y del contexto.
 Otro tipo de estructura es la que está representada por la unión, en la
cual se unen distintos datos, pero diferenciándose del registro debido a
que solo se da cobijo a un valor determinado. En el caso de requerir un
campo añadido dentro del registro, se utiliza el término de tipo variante.

La flexibilidad de las estructuras de datos permite su aprovechamiento de formas


muy variadas. Un buen reflejo de ello lo aporta el grafo, que se trata de una
versión en la cual los datos están conectados debido a la presencia de nodos.
Y todos estos nodos no solo disponen de un valor determinado que les ha sido
asignado, sino que cuentan con vínculos con otros de los nodos. La facilidad en la
comunicación de estos nodos abre muchas posibilidades y es por lo que se usan
en la representación de redes. También lo facilita que a la hora de crear esta
estructura se puedan definir puntos de inicio y de final mediante la elección de
nodos exactos con los que se da la oportunidad de marcar la dirección a seguir en
el proceso de trabajo.

Hay una variante específica que recibe el nombre de árbol y que se representa
porque el camino parte de un punto inicial que deriva hacia todos los demás
nodos. Este tipo de grafo no da la oportunidad de crear ciclos y también se puede
agrupar en conjunto, lo que da lugar al término bosque.

En ciencias de la computación, una estructura de datos es una forma particular de


organizar datos en una computadora para que puedan ser utilizados de manera
eficiente. Diferentes tipos de estructuras de datos son adecuados para diferentes
tipos de aplicaciones, y algunos son altamente especializados para tareas
específicas.

Las estructuras de datos son un medio para manejar grandes cantidades de datos
de manera eficiente para usos tales como grandes bases de datos y servicios
de indización de Internet. Por lo general, las estructuras de datos eficientes son
clave para diseñar algoritmos eficientes. Algunos métodos formales de diseño y
lenguajes de programación destacan las estructuras de datos, en lugar de los
algoritmos, como el factor clave de organización en el diseño de software.

En programación, una estructura de datos puede ser declarada inicialmente


escribiendo una palabra reservada, luego un identificador para la estructura y un
nombre para cada uno de sus miembros, sin olvidar los tipos de datos que estos
representan. Generalmente, cada miembro se separa con algún tipo de
operador, carácter o palabra reservada.

En el lenguaje de programación Pascal, es posible crear una estructura de datos


de la forma mencionada. La sintaxis básica es:

Estruct Identificador, _
Miembro1:TipoDeDato, _
Miembro2:TipoDeDato, _
...
Miembro9:TipoDeDato

Para acceder a los miembros de una estructura, primero se debe crear una
referencia a esta, generalmente con una variable de tipo; luego se pueden editar y
obtener los datos de los miembros libremente.

Estruc Estructura,Miembro1:Entero,Miembro2:Cadena,Miembro3:Byte
Var Variable:Estructura
Variable.Miembro1 = 40000
Variable.Miembro2 = "Hola Mundo"
Variable.Miembro3 = 255
Mensaje(Variable.Miembro2) ' Muestra "Hola Mundo"
¿QUÉ SON LAS ESTRUCTURAS DE DATOS DINÁMICOS?

Una estructura de datos dinámica es aquella en la que el tamaño ocupado en


memoria puede modificarse durante la ejecución del programa.

De esta manera se pueden adquirir posiciones adicionales de memoria a medida


que se necesiten durante la ejecución del programa y liberarlas cuando no se
necesiten

Las variables que se crean y están disponibles durante la ejecución del programa
se llaman variables continuas.
Las estructuras de datos dinámicas se clasifican en lineales (listas, pilas y colas) y
no lineales (árboles y grafos).

Una base de datos dinámica es aquella en la que se almacenan datos que pueden
variar con el paso del tiempo. Para adecuarse a estos datos cambiantes, las bases
dinámicas permiten realizar operaciones de edición, actualización o borrado de
información.

Por ejemplo, imaginemos una tienda online que tiene una base de datos con
productos y sus respectivos precios. Se necesitará que sea una base de datos
dinámica, ya que el precio de cada producto es susceptible de variar con el
tiempo.

Aquella en la que el tamaño ocupado en memoria se define antes de que el


programa se ejecute y no pueda modifcarse dicho tamaño durante la ejecucion del
programa entre las estructuras de datos estaticas se encuentran en los array
(vectores y matrices), registros, archivos y cadenas.
Las estructuras dinamicas de datos se pueden dividir en dos grandes grupos:

Lineales:

 Pilas

 Colas
 Listas Enlazadas

No Lineales:

 Arboles

 Grafos
¿QUÉ SON LAS ESTRUCTURAS DE DATOS ESTATICAS?

Las estructuras de datos estáticos son aquellas en las que el tamaño ocupado en
memoria se define antes de que el programa se ejecute (no puede modificarse
dicho tamaño durante la ejecución del programa).

Una base de datos estática es aquella cuya función principal es el


almacenamiento y registro de datos fijos. Es decir, guarda información que no se
va a modificar ni editar con el tiempo. Se trata de un tipo de bases de datos de
solo lectura.

Son aquellas en las que el tamaño ocupado en memoria se define antes de que el
programa se ejecute y no puede modificarse dicho tamaño durante la ejecución
del programa.

Su principal característica es que ocupan solo una casilla de memoria, por lo tanto
una variable simple hace referencia a un único valor a la vez, dentro de este grupo
de datos se encuentra:

1. Enteros
2. Reales
3. Caracteres
4. Boléanos
5. Enumerados
6. Subrangos
¿QUÉ ES LA PROGRAMACIÓN MODULAR?
La programación modular consiste en la descomposición de un programa en
trozos más pequeños denominados módulos o subprogramas, en el que cada uno
de ellos se encargara de llevar a cabo una tarea concreta y bien definida, y se
agrupara según su funcionalidad. Cada uno de estos módulos se analizara y
codificara por separado.

La programación modular es un paradigma de programación que consiste en


dividir un programa en módulos o subprogramas con el fin de hacerlo más legible
y manejable

Se presenta históricamente como una evolución de la programación


estructurada para solucionar problemas de programación más grandes y
complejos de lo que esta puede resolver.

Al aplicar la programación modular, un problema complejo debe ser dividido en


varios subproblemas más simples, y estos a su vez en otros subproblemas más
simples aún. Esto debe hacerse hasta obtener subproblemas lo suficientemente
simples como para poder ser resueltos fácilmente con algún lenguaje de
programación. Esta técnica se llama refinamiento sucesivo, divide y vencerás o
análisis descendente (Top-Down).

Un 'módulo' es cada una de las partes de un programa que resuelve uno de los
subproblemas en que se divide el problema complejo original. Cada uno de estos
módulos tiene una tarea bien definida y algunos necesitan de otros para poder
operar. En caso de que un módulo necesite de otro, puede comunicarse con este
mediante una interfaz de comunicación que también debe estar bien definida.

Si bien un módulo puede entenderse como una parte de un programa en


cualquiera de sus formas y variados contextos, en la práctica se los suele tomar
como sinónimos de procedimientos y funciones. Pero no necesaria ni
estrictamente un módulo es una función o un procedimiento, ya que el mismo
puede contener muchos de ellos. No debe confundirse el término "módulo" (en el
sentido de programación modular) con términos como "función" o "procedimiento",
propios del lenguaje que lo soporte.

La estructura de un programa modular constara de un módulo principal desde el


que se llamara al resto de los módulos. El módulo principal recibe el control al inicio
de la ejecución del programa. Cuando se invoca un módulo concreto (a través de
su nombre y parámetros), el control del programa se pasara al módulo. Este
módulo mantendrá el control hasta que no se finalice su ejecución en cuyo
momento devolverá el control a la instrucción siguiente a la que realizo la llamada.

Cada uno de estos módulos puede hacer a su vez llamadas a otros módulos que
siempre devolverán el control al módulo desde el que fueron llamados, pone freno
a la redundancia del código, ya que aíslan las secuencias de instrucciones más
usadas y que se repiten, se les da un nombre y cuando se quieran usar,
simplemente se invocara dicho nombre en el lugar donde sea necesario.

Las características que definen estos módulos son las siguientes:

 Cada módulo deberá tener asignado un nombre propio que le diferencie de


los otros y que será usado para invocarlos.
 Se puede transmitir información entre el módulo principal y el resto de los
módulos a través de parámetros.
 Cada módulo puede ser programado y compilado por separado, y
almacenado posteriormente en librerías.
 Cada módulo consta de dos partes: la cabecera, que es donde aparece el
nombre y los datos que se le pasan o genera, y el cuerpo o estructura
interna, que es donde se desarrolla el código.
 Permite trabajar en equipo. Cada programador puede desarrollar un módulo
diferente y posteriormente enlazarlos.
 El tamaño del módulo debe encontrarse entre 20 y 200 líneas de código.
 Los módulos con menos de 20 líneas de código pueden disminuir la
eficiencia del programa.
 Los módulos que contienen as de 200 líneas de código son difíciles de
verificar y mantener.
 Un módulo debe realizar una sola tarea y contenerla en su totalidad.
 Un requisito necesario para el desarrollo de código modular es la existencia
de un mecanismo que permita el intercambio de datos entre módulos. En
ensamblador existen técnicas que permiten este intercambio.
¿QUÉ ES UN COMPILADOR?

En informática, un compilador es un programa que traduce código escrito en


un lenguaje de programación (llamado fuente) a otro lenguaje (conocido
como objeto). En este tipo de traductor, el lenguaje fuente es generalmente un
lenguaje de alto nivel, y el objeto un lenguaje de bajo nivel (código máquina).2 A
diferencia de los intérpretes, los compiladores reúnen diversos elementos o
fragmentos en una misma unidad (un programa ejecutable o una biblioteca), que
puede ser almacenada y reutilizada. Este proceso de traducción se conoce
como compilación.

Es un Software que traduce un programa escrito en un lenguaje de programación


de alto nivel (C / C ++, COBOL, etc.) en lenguaje de máquina. Un compilador
generalmente genera lenguaje ensamblador primero y luego traduce el lenguaje
ensamblador al lenguaje máquina. Una utilidad conocida como «enlazador»
combina todos los módulos de lenguaje de máquina necesarios en un programa
ejecutable que se puede ejecutar en la computadora.

La construcción de un compilador involucra la división del proceso en una serie de


fases que variará con su complejidad. Generalmente estas fases se agrupan en
dos tareas: el análisis del programa fuente y la síntesis del programa objeto.4:3

 Análisis: se trata de la comprobación de la corrección del programa


fuente, según la definición del lenguaje en términos de teoría de
lenguajes formales. Incluye las fases correspondientes al análisis
léxico (que consiste en la descomposición del programa fuente en
componentes léxicos), análisis sintáctico (agrupación de los
componentes léxicos en frases gramaticales) y análisis semántico
(comprobación de la validez semántica de las sentencias aceptadas en
la fase de análisis sintáctico).

 Síntesis: su objetivo es la generación de la salida expresada en el


lenguaje objeto y suele estar formado por una o varias combinaciones
de fases de generación de código (normalmente se trata de código
intermedio o de código objeto) y de optimización de código (en las que
se busca obtener un programa objetivo lo más eficiente posible, según
su complejidad computacional o complejidad de Kolmogórov: tiempo de
ejecución, espacio durante ejecución, espacio para ser almacenado
fuera de ejecución, etc.).

Alternativamente, las fases descritas para las tareas de análisis y síntesis se


pueden agrupar en:

 Analizador o front-end: es la parte que analiza el código fuente,


comprueba su validez, genera el árbol de derivación y rellena los
valores de la tabla de símbolos. Esta parte suele ser independiente de
la plataforma o sistema para el cual se vaya a compilar, y está
compuesta por las fases comprendidas entre el análisis léxico y la
generación de código intermedio.
 Generador o back-end: es la parte que genera el código máquina,
específico de una plataforma, a partir de los resultados de la fase de
análisis.
DIFERENCIAS ENTRE UN PROGRAMA TRANSPORTABLE
O CORTABLE.
Un programa portable es un programa que no necesita instalarse en un ordenador
o donde vaya a ejecutarse, ni dejar un registro en el mismo.

Este tipo de programas funcionan en el equipo que queramos, siempre y cuando


ésta cuente con el sistema operativo para el cual fue diseñado. Se conocen con
diferentes nombres; portables, software alone, aplicación portable, etc.

Esta característica de no ser necesaria una instalación para usarlo permite


llevarlos en una memoria USB y ejecutarlos desde allí, siempre y cuando la
memoria USB tenga la capacidad suficiente para soportar dicho programa.

Una aplicación portátil -del inglés "portable"- es una aplicación informática que
puede ser utilizada, sin instalación previa, en un ordenador que posea el sistema
operativo para el que fue programada. Esto significa que no es necesaria la
instalación de bibliotecas adicionales en el sistema para su funcionamiento que
modifique la información de configuración del ordenador.

No todas las aplicaciones informáticas son portátiles. Usualmente existe una


versión normal de la aplicación (típicamente no portátil), y luego, esta se modifica
para crear una aplicación portátil. Por otro lado, hay aplicaciones que sin ser
modificadas pueden ser usadas como aplicaciones para llevar, como eMule, ya
que se distribuyen en un ejecutable y no necesitan ser instaladas sino solo
copiarse a una carpeta, que bien podría estar en una memoria USB.

Este tipo de aplicación se puede almacenar en cualquier dispositivo de


almacenamiento, incluyendo programas internos de almacenamiento masivo y el
almacenamiento externo, como memorias USB y disquetes - almacenar sus
archivos de programa y la información de configuración y los datos en el soporte
de almacenamiento solo. Si se requiere información de configuración de un
programa portátil se puede ejecutar desde de sólo lectura de almacenamiento
tales como CD-ROM y DVD-ROM. Algunas aplicaciones están disponibles en
instalable y versiones portátiles..
¿A QUÉ SE REFIERE EL TÉRMINO DE PROGRAMACIÓN
ESTRUCTURADA?

La programación estructurada es un paradigma de programación orientado a


mejorar la claridad, calidad y tiempo de desarrollo de un programa de
computadora recurriendo únicamente a subrutinas y tres estructuras
básicas: secuencia, selección (if y switch) e iteración (bucles for y while);
asimismo, se considera innecesario y contraproducente el uso de la instrucción
de transferencia incondicional (GOTO), que podría conducir a código espagueti,
mucho más difícil de seguir y de mantener, y fuente de numerosos errores de
programación.

La programación estructurada es una teoría orientada a mejorar la claridad,


calidad y tiempo de desarrollo utilizando únicamente subrutinas o funciones.
Basada en el teorema del programa estructurado propuesto por Böhm y Jacopini,
ha permitido desarrollar software de fácil comprensión. ¿Repetimos? ¡No te
asustes! Vamos a contarte de forma sencilla y rápida todo lo que debes saber
sobre la programación estructurada.
La programación estructurada es una corriente que nació con la vocación de
facilitar la vida de los programadores, sobre todo cuando estos debían abordar
fases de mejora posteriores a la creación del programa, y de ordenar la forma en
la que se creaba cualquier tipo de programa.

 Los programas desarrollados con la programación estructurada son más


sencillos de entender, ya que tienen una estructura secuencial y
desaparece la necesidad de rastrear los complejos saltos de líneas
(propios de la sentencia Goto) dentro de los bloques de código para
intentar comprender la lógica interna.
 Como consecuencia inmediata de lo anterior, otra ventaja es que los
programas resultantes tendrán una estructura clara, gracias a que las
sentencias están ligadas y relacionadas entre sí.
 La fase de prueba y depuración de los programas se optimiza, ya que es
mucho más sencillo hacer el seguimiento de los fallos y errores y, por
tanto, detectarlos y corregirlos.
 El coste del mantenimiento de los programas que usan la programación
estructurada es más reducido. ¿Por qué? Pues porque modificar o
extender los programas es más fácil al estar formados por una estructura
secuencial.
 Al ser más sencillos los programas, son más rápidos de crear y los
programadores aumentan su rendimiento.

La programación estructurada es un paradigma de programación basado en


utilizar funciones o subrutinas, y únicamente tres estructuras de control:

 secuencia: ejecución de una sentencia tras otra.


 selección o condicional: ejecución de una sentencia o conjunto de
sentencias, según el valor de una variable booleana.
 iteración (ciclo o bucle): ejecución de una sentencia o conjunto de
sentencias, mientras una variable booleana sea verdadera.

Este paradigma se fundamente en el teorema correspondiente, que establece que


toda función computable puede ser implementada en un lenguaje de programación
que combine sólo estas tres estructuras lógicas o de control.

La estructura de secuencia es la que se da naturalmente en el lenguaje, ya que


por defecto las sentencias son ejecutadas en el orden en que aparecen escritas en
el programa.

Para las estructuras condicionales o de selección, Python dispone de la


sentencia if, que puede combinarse con sentencias elif y/o else.
MENCIONA LO TIPOS DE ESTRUCTURA DE DATOS QUE
EXISTEN Y DEFINALAS.

Estructura de datos, pueden organizarse en muchas formas diferentes; el modelo


matemático o lógico de una organización particular de datos recibe el nombre
de estructura de datos.

La elección de un modelo de datos depende de dos cuestiones. Primero, debe ser


lo suficientemente complejo para mostrarnos la relación entre los datos y lo que
representan. Por el contrario, la estructura debe ser lo suficiente mente simple
para que los datos puedan ser procesados de forma eficiente cuando sean
necesario.

Las estructuras de datos es una rama de las ciencias de la computación que


estudia y aplica diferentes formas de organizar información dentro de una
aplicación, para manipular, buscar e insertar estos datos de manera eficiente.

Entre las diferentes estructuras de datos podemos encontrar las siguientes:

Arrays

Los arrays son una estructura que almacena los datos un elemento al lado del
otro. En la mayoria de lenguajes de programación esta estructura de datos es de
tamaño fijo y no puede guardar datos de diferentes tipos, es decir no puedo
guardar valores numericos y booleanos al mismo tiempo, aunque claramente hay
excepciones, por ejemplo: Javascript.

Es recomendable usar arrays cuando el acceso a estos datos se realizan de


manera aleatoria, en caso contrario es recomendable usar las listas.

Listas enlazadas

Las listas enlazadas son un tipo de estructura de datos similar a los arrays con la
diferencia de que por defecto no tenemos por qué saber la cantidad de elementos
que va a contener. Estas listas se componen de nodos los cuales tienen dos
atributos: el primero es el item o elemento que va a contener este nodo y el
segundo atributo es una referencia al siguiente elemento de la lista.

Pilas

Las pilas son un tipo de listas que tienen la particularidad de sólo poder eliminar o
insertar en la cima de la lista. A estas acciones se le conocen como apilar y
desapilar y conlleva a que el último elemento que ingresa a la pila sea el primero
en salir a lo cual se le conoce como LIFO (Last in First out).

Colas

Esta estructura es otro tipo de lista que nos permite emular el comportamiento de
una fila o cola de la vida real donde el primer elemento en ingresar a la fila es el
primero en salir, lo que quiere decir que las inserciones (Encolar) se realizan al
final y las extracciones (Desencolar) se realizan al frente de la cola, lo cual se
conoce como FIFO (First in First out).

Arboles binarios

Los arboles binarios son estructuras de datos que se componen de una nueva
clase de nodo donde cada uno contiene un item o un valor, una referencia a un
nodo que sera el hijo izquierdo y otra referencia para el nodo derecho, una
característica esencial de los arboles binarios es que la inserción de sus
elementos se realizan siguiendo un criterio, si el item del nodo a insertar es menor
a su nodo padre, la inserción se realiza por la izquierda y en caso contrario la
inserción se realiza por el lado derecho y como consecuencia de esto nuestro
arbol siempre estara organizado de tal manera que los hijos izquierdos de cada
nodo seran menores a el y los derechos seran mayores, lo cual nos permite
realizar búsquedas muy eficientes debido a la organización de esta información
donde para buscar un elemento solo es necesario ir comparando el valor a buscar
con el valor del nodo actual y asi tomar la decisión si ir por la izquierda o por la
derecha, ahorrandonos las búsquedas por el otro lado del arbol.
¿PARA QUE SIRVEN LAS ESTRUCTURAS DE DATOS?

Las estructuras de datos son un medio para manejar grandes cantidades


de datos de manera eficiente para usos tales como grandes bases de datos y
servicios de indización de Internet. Por lo general, las estructuras de
datos eficientes son clave para diseñar algoritmos eficientes.

Las estructuras de datos son útiles porque nos permiten tener una batería de
herramientas para solucionar ciertos tipos de problemas. Además, nos permiten
hacer un software más eficiente optimizando recursos, algo muy útil para IoT y
para los entornos que trabajan con Big Data.
¿COMO SE CLASIFICAN LAS ESTRUCTURAS DE DATOS
DE DATOS?

Las estructuras de datos simples se pueden combinar de varias maneras para


formar estructuras más complejas. Las dos clases principales de estructuras de
datos son las lineales y las no lineales, dependiendo de la complejidad de las
relaciones lógicas que representan. Las estructuras de datos lineales incluyen
pilas, colas y listas ligadas lineales. Las estructuras de datos no lineales incluyen
grafos y árboles.

En un programa, cada variable pertenece a alguna estructura de datos explícita o


implícitamente definida, la cual determina el conjunto de operaciones validas para
ella. Las estructuras de datos que se discuten aquí son estructuras de datos
lógicas. Cada estructura de datos lógica puede tener varias representaciones
físicas diferentes para sus almacenamientos

ESTRUCTURAS PRIMITIVAS Y SIMPLES

En programación, una estructura de datos es una forma de organizar un conjunto


de datos elementales con el objetivo de facilitar su manipulación
Son primitivas aquellas que no están compuestas por otras estructuras de datos
por ejemplo, enteros, booleanos y caracteres. Otras estructuras de datos se
pueden construir de una o mas primitivas. Las estructuras de datos simples que
consideramos se construyen a partir de estructuras primitivas y son: cadenas,
arreglos y registros. A estas estructuras de datos las respaldan muchos lenguajes
de programación.

Arrays

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, normalmente 1,2,3, …, n.

Pila

Una pila, 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.

Cola

Una cola, 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. Por ejemplo, supongamos que unas líneas aéreas
realizan vuelos sólo entre ciudades conectadas por líneas. La estructura de datos
que refleja esta relación recibe el nombre de grafo.
¿QUÉ SON LOS DATOS ESTRUCTURADOS?

Los datos se pueden clasificar según su origen, su rango, el tipo de lenguaje con
el que queremos trabajar sobre ellos etc. La clasificación más práctica y global que
permite trabajar de forma efectiva en el mundo digital es la basada en su
estructura. Según esta, hay 3 tipos de datos: estructurados, semiestructurados y
no estructurados.

Los datos estructurados son los datos típicos de la mayoría de bases de datos
relacionales (RDBMS). Estas bases de datos se caracterizan por tener un
esquema determinado que define cómo son las tablas en las que se almacenan
los datos, qué tipo de campos tienen y cómo se relacionan entre ellas.

Estos son algunos ejemplos de datos estructurados:

 El resultado de los cuestionarios de opción múltiple

 Datos de ventas que se han recopilado de manera uniforme

 El resultado de los datos que se ingresan en un formulario de un sitio web

 Información de contacto del cliente (si se recopila de manera uniforme)

 Conjuntos de datos preexistentes que ya están formateados


¿QUÉ SON LAS ESTRUCTURAS DE DATOS CONTINUAS?

Los datos continuos, o una superficie continua, representan fenómenos en los que
cada ubicación de la superficie es una medida del nivel de concentración o de su
relación a partir de un punto fijo en el espacio o de una fuente de emisión. A los
datos continuos se les suele conocer también como datos de campo, no discretos
o de superficie.

Un tipo de datos de superficie continua deriva de aquellas características que


definen una superficie, en la que cada ubicación se mide desde un punto de
registro fijo. Estas incluyen elevación (el punto fijo que es el nivel del mar) y
orientación (el punto fijo que es la dirección: Norte, Este, Sur y Oeste).

Las estructuras contiguas o físicas son aquellas que al representarse en el


hardware del ordenador, lo hacen situando sus datos en áreas adyacentes de
memoria; un dato en una estructura contigua se localiza directamente calculando
su posición relativa al principio del área de memoria que contiene la estructura.
HISTORIA DE LA ESTRUCTURA DE DATOS.
Durante los primeros años de la era de la computadora, el software se
contemplaba como un añadido. Desde entonces el campo se ha desarrollado
tremendamente. La programación de computadoras era un “arte de andar por
casa” para el que existían pocos métodos sistemáticos. El desarrollo del software
se realizaba virtualmente sin ninguna planificación, hasta que los planes
comenzaron a descalabrarse y los costos a correr. Los programadores trataban de
hacer las cosas bien, y con un esfuerzo heroico, a menudo salían con éxito. Los
problemas a ser resueltos eran principalmente de una naturaleza técnica, el
énfasis estaba en expresar algoritmos conocidos eficazmente en algún lenguaje
de programación.

En estos primeros años lo normal era que el hardware fuera de propósito general.
Por otra parte, el software se diseña a medida para cada aplicación y tenía una
distribución relativamente pequeña. El software como producto estaba en su
infancia. La mayoría del software se desarrollaba y era utilizado por la misma
persona un organización. La misma persona lo escribía , lo ejecutaba y, si fallaba,
lo depuraba. Debido a que la movilidad en el trabajo era baja, los ejecutivos
estaban seguros de que esa persona estará allí cuando se encontrara algún error.
Debido a este entorno personalizado del software, el diseño era un proceso
implícito, realizado en la mente de alguien, y la documentación normalmente no
existía.

A lo largo de los primeros años aprendimos mucho sobre la implementación de


sistemas informáticos, pero relativamente poco sobre la ingeniería de las
computadoras. Sin embargo, en honor de la verdad, debemos reconocer que
durante esa era se desarrollaron muchos sistemas informáticos excepcionales.
Algunos de ellos todavía se siguen utilizando hoy y, por sus características, siguen
siendo admirados con toda justicia.
CARACTERÍSTICAS DE LA ESTRUCTURA DE DATOS.

Una estructura de datos se caracteriza por lo siguiente: -Pueden descomponerse


en los elementos que la forman. -La manera en que se colocan los elementos
dentro de la estructura afectará la forma en que se realicen los accesos a cada
elemento.

 Pueden descomponerse en los elementos que la forman.

 La manera en que se colocan los elementos dentro de la estructura afectará


la forma en que se realicen los accesos a cada elemento.

 La colocación de los elementos y la manera en que se accede a ellos


puede ser encapsulada.
VENTAJAS Y DESVENTAJAS DE LAS ESTRUCTURAS DE
DATOS.

VENTAJAS:

 Permite modificar “Globalmente” las variables sin tener que recorre el código
buscando cada aparición.
 Define variables y evita que cambien entre rutinas.
 Separa desde el inicio del programa el espacio en memoria.
 Se trabaja más fácil el paso de datos entre aplicaciones.

DESVENTAJAS:

 Puede causar confusión al intentar unir o pasar información entre programas, si no


se tiene en cuenta la longitud y tipo de datos.
 Si es poca la memoria, puede separar espacio que nunca se utiliza y colgar el
equipo.
CONCLUSIÓN.

Después de haber investigado y descubierto cada uno de estos conceptos,


descubrimos su importancia, su función y como podemos utilizarlas a la hora de
programar, nos facilitaran nuestro flujo de trabajo; esperando que haya sido de
utilidad esta investigación me despido, muchas gracias.
BIBLIOGRAFÍA.
I. https://www.universidadviu.com/es/actualidad/nuestros-expertos/estructura-de-datos-
definicion-y-tipos-principales#:~:text=Cuando%20hablamos%20de%20programaci
%C3%B3n%2C%20la,la%20manera%20m%C3%A1s%20efectiva%20posible.
II. https://es.wikipedia.org/wiki/Estructura_de_datos
III. http://zeus.inf.ucv.cl/~rsoto/cursos/INF245/Cap2_Parte1_6ppt_INF245.pdf
IV. http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/libro9/
estructuras_de_datos_estticas_y_dinmicas.html
V. https://es.wikibooks.org/wiki/Estructuras_de_datos_din%C3%A1micas/Texto_completo
VI. https://ayudaleyprotecciondatos.es/bases-de-datos/dinamicas/
#Que_es_una_base_de_datos_dinamica_Definicion
VII. http://fcasua.contad.unam.mx/apuntes/interiores/docs/2005/informatica/2/1265.pdf
VIII. http://cidecame.uaeh.edu.mx/lcc/mapa/PROYECTO/
libro32/113_programacin_modular.html
IX. https://es.wikipedia.org/wiki/Programaci%C3%B3n_modular
X. https://es.wikipedia.org/wiki/Compilador#/media/Archivo:CompilationScheme-
Spanish.png
XI. https://www.europeanvalley.es/noticias/que-es-un-compilador-en-programacion/
XII. https://pc-solucion.es/2017/08/10/que-es-un-programa-portable/#:~:text=Un
%20programa%20portable%20es%20un,para%20el%20cual%20fue%20dise%C3%B1ado.
XIII. https://es.wikipedia.org/wiki/Aplicaci%C3%B3n_port%C3%A1til
XIV. https://www.edix.com/es/instituto/programacion-estructurada/#:~:text=La
%20programaci%C3%B3n%20estructurada%20es%20una,desarrollar%20software%20de
%20f%C3%A1cil%20comprensi%C3%B3n.
XV. https://entrenamiento-python-basico.readthedocs.io/es/latest/leccion5/
programacion_estructurada.html
XVI. https://es.wikipedia.org/wiki/Programaci%C3%B3n_estructurada }
XVII. https://ed.team/blog/estructuras-de-datos
XVIII. https://www.ecured.cu/Estructura_de_datos
XIX. https://es.wikipedia.org/wiki/Estructura_de_datos#:~:text=Las%20estructuras%20de
%20datos%20son,clave%20para%20dise%C3%B1ar%20algoritmos%20eficientes.
XX. https://prezi.com/6kkvucmgw4ps/estructura-de-datos-y-su-clasificacion/#:~:text=Las
%20dos%20cases%20principales%20de,lineales%20incluyen%20grafos%20y
%20%C3%A1rboles.
XXI. https://www.ecured.cu/Estructura_de_datos#Tipos_de_estructuras_de_datos
XXII. https://luca-d3.com/es/data-speaks/diccionario-tecnologico/datos-
estructurados#:~:text=Los%20datos%20estructurados%20son%20los,c%C3%B3mo%20se
%20relacionan%20entre%20ellas.
XXIII. https://www.brandwatch.com/es/blog/datos-estructurados/
XXIV. https://desktop.arcgis.com/es/arcmap/10.5/extensions/3d-analyst/discrete-and-
continuous-data-in-3d-analyst.htm#:~:text=Los%20datos%20continuos%2C%20o
%20una,de%20una%20fuente%20de%20emisi%C3%B3n.
XXV. http://estructuradedatosprofhosman.blogspot.com/2015/10/historia-del-software.html
XXVI. https://es.wikidat.com/info/estructura-de-datos
XXVII. https://upload.wikimedia.org/wikipedia/commons/5/51/APUNTES.pdf
XXVIII. https://sites.google.com/site/estructuradedatosbbat/caracteristicas-de-una-estructura-
de-datos
XXIX. https://prezi.com/4vycdtsiigbo/estructura-de-datos/
GLOSARIO DE TÉRMINOS.

Datos: Información concreta sobre hechos, elementos, etc., que permite


estudiarlos, analizarlos o conocerlos.

Programación: La programación informática es el arte del proceso por el cual se


limpia, codifica, traza y protege el código fuente de programas computacionales,
en otras palabras, es indicarle a la computadora lo que tiene que hacer.

Arreglo: Un arreglo (matriz) es una colección ordenada de datos (tanto primitivos


u objetos dependiendo del lenguaje). Los arreglos (matrices) se emplean para
almacenar múltiples valores en una sola variable, frente a las variables que sólo
pueden almacenar un valor (por cada variable). Un arreglo (matriz) es una
colección ordenada de datos (tanto primitivos u objetos dependiendo del lenguaje).
Los arreglos (matrices) se emplean para almacenar múltiples valores en una sola
variable, frente a las variables que sólo pueden almacenar un valor (por cada
variable).

También podría gustarte