Está en la página 1de 7

Universidad Abierta y a Distancia de México

Estructura de datos

Unidad 1

Actividad 1: Relación entre algoritmos y


estructuras de datos.

Alumno: Yair Gigael Basilio López

Matrícula: ES172006480
Relación entre algoritmos y estructuras de datos.
Algoritmo: Es un conjunto ordenado y finito de operaciones que permite hallar la
solución de un problema. Método y notación en las distintas fórmulas del cálculo.
El algoritmo constituye un método para resolver un problema mediante una
secuencia de pasos a seguir. Dicha secuencia puede ser expresada en forma de
diagrama de flujo con el fin de seguirlo de una forma más sencillo. Dicho de otra
manera, un algoritmo es toda secuencia de instrucciones o indicaciones
destinadas a ser utilizadas, directa o indirectamente, en un sistema informático
para realizar una función o una tarea o para obtener un resultado determinado,
cualquiera que sea su forma de expresión y fijación.
Estructura de Datos: Una estructura de datos es una forma de organizar un
conjunto de datos elementales con el objetivo de facilitar su manipulación o
procesamiento. Un dato elemental es la mínima información que se tiene en un
sistema. Una estructura de datos define la organización e interrelación de éstos y
un conjunto de operaciones que se pueden realizar sobre ellos.
Pilas: Una pila es un tipo especial de lista lineal en la que la inserción y borrado
de nuevos elementos, se realiza solo por un extremo que se denomina cima o
tope (top).
Un ejemplo claro de pila en la vida cotidiana es un tambor de CD’s el cual se va
apilando conforme se guardan y los primeros en entrar son los últimos en salir al
momento de querer manipularlos.

Imagen de tambos de CD’s.

Cola: Una cola es una estructura lineal de datos en la que las eliminaciones se
realizan al principio de la lista frente (front) y las inserciones se realizan en el otro
extremo final (rear). En las filas el elemento que entro primero sale primero, por
eso se conocen como listas FIFO (first-in, first-out). Las colas se usan para
almacenar datos que necesitan ser procesados según el orden de llegada.
Un ejemplo de cola en la vida real es una cola de personas para entrar al cajero
ATM, como se muestra en la siguiente imagen.

Imagen de cola de personas para entrar a cajero ATM.

Lista: Son un conjunto de elementos de un tipo dados que pueden variar en


número y donde cada elemento tiene un único y un único sucesor o siguiente,
excepto el primero y el ultimo de la lista.
Un ejemplo de lista en la vida cotidiana es una lista de asistencia en alguna
institución educativa, como la que se muestra en la siguiente imagen.

Imagen de lista de asistencia.


Realización de una estructura
Se le denomina así a la planeación de manipulación de datos para una actividad
en particular y determinada por la problemática que se desea resolver, así como
los árboles, pilas, colas, listas, vectores, grafo, entre otros con los cuales podemos
manipular la información de diferente manera y en algunos casos de una forma
muy específica.
Un vector es una serie de elementos en un orden específico, por lo general todos
del mismo tipo (si bien los elementos pueden ser de casi cualquier tipo). Se
accede a los elementos utilizando un entero como índice para especificar el
elemento que se requiere. Las implementaciones típicas asignan palabras de
memoria contiguas a los elementos de los arreglos (aunque no siempre es el
caso). Los arreglos pueden cambiar de tamaño o tener una longitud fija.
Un árbol es un caso particular de grafo dirigido en el que no se admiten ciclos y
existe un camino desde un nodo llamado raíz hasta cada uno de los otros nodos.
Una colección de árboles es llamada un bosque.
Un grafo es una estructura de datos conectada compuesta por nodos. Cada nodo
contiene un valor y una o más referencias a otros nodos. Los grafos pueden
utilizarse para representar redes, dado que los nodos pueden referenciarse entre
ellos. Las conexiones entre nodos pueden tener dirección, es decir un nodo de
partida y uno de llegada.

Definición de TAD
Un Tipo Abstracto de Datos es un conjunto de valores y de operaciones definidos
mediante una especificación independiente de cualquier representación.
TAD = valores + operaciones
La manipulación de un TAD sólo depende de su especificación, nunca de su
implementación.
Para manipular los enteros nos olvidamos de cómo se representan los valores y
de cómo están implementadas las operaciones.

Ejemplo de TDA en lista enlazada.


Un claro ejemplo de este concepto es la de los diagramas de árbol que son de
mucha utilidad como estructura para ciertos datos sobre todo los que tienen
derivados también denominados hijos los datos principales se les denomina como
raíz, se puede explorar esta estructura con una serie de comandos especificando
los niveles del árbol, los hijos y raíces que lo conforman para poder hacer el
recorrido.
Imagen de un ejemplo de la estructura de un árbol.
Lee detenidamente el siguiente caso: (Asignación dinámica de memoria) la
instrucción string *Nombres[20] declara un arreglo de 20 apuntadores a carácter,
los cuales pueden servir como apuntadores a nombres para después procesarlos.
Pero qué tal si el número de nombres a usar requiere que sea introducido por el
usuario y determinarse en tiempo de ejecución, entonces tenemos que reservar
dinámicamente la memoria para el arreglo Nombres. ¿Cómo se resuelve esta
situación mediante un programa?
String Nombres[ ];
Int elementos;
public void tamañoArray(){
elementos = Integer.parseInt(JOptionPane.showInputDialog(“Ingrese el número
de nombres a registrar”));
Nombres[ ] persona = new String[elementos];
}
Lo que podemos observar en el pequeño código anterior es que se le solicita al
usuario que ingrese el tamaño del arreglo mediante el numero de nombres que se
van a registrar, de esta forma se aprovecha el espacio de manera un poco mas
optima que si se le da un tamaño especifico al arreglo ya que no sabremos si
todos los espacios van a ser utilizados.

¿Cuáles son las relaciones entre las estructuras de datos y los


algoritmos?
Estos tópicos son importantes porque las elecciones que usted haga para las
estructuras de datos y los algoritmos de un programa afectarán al uso de la
memoria (las estructuras de datos) y al tiempo del procesador (los algoritmos que
interactúan con esas estructuras de datos). Cuando utiliza una estructura de datos
o un algoritmo alguna vez descubre una relación inversa entre la utilización de
memoria y el tiempo de CPU: cuanta menos memoria utiliza una estructura de
datos, más tiempo de CPU necesitan los algoritmos asociados para procesar
los items de datos de la estructura, que son valores de tipos primitivos u objetos,
mediante referencias. De igual forma, cuanta más memoria utilice una estructura
de datos, menor tiempo de CPU necesitan los algoritmos asociados y el
procesamiento de los ítems de datos es mucho más rápido. En la siguiente figura
aparece está relación inversa.

Conclusión: La relación que existe entre los algoritmos y la estructura de datos


radica en la manera como estos realizan sus operaciones o resuelven los
problemas, ya que ambos lo hacen siguiendo un orden con base en patrones
establecidos por la estructura o el algoritmo. Las estructuras de datos y los
algoritmos repercuten de forma directa en el almacenamiento y tratamiento de la
información, tanto desde el punto de vista físico como funcional. Por tanto,
el amplísimo ámbito de la programación se construye sobre los cimientos de
dichos algoritmos y estructuras de datos. A esto hay que agregar que, para
manejar la información existente en la base de datos, se hace uso de un algoritmo,
pues esto ayuda a facilitar la búsqueda o el proceso requerido de los datos. Esto
sin mencionar que es por medio de los algoritmos que se forman las pilas, listas y
colas, que forman parte de la estructura de datos.
Referencias
Ada, E. (2017). webdiis. Obtenido de
http://webdiis.unizar.es/~elvira/eda/material0304/TADespec/TAD.pdf
Fundación Wikimedia, Inc. (12 de 12 de 2019). Wikipedia. Obtenido de
https://es.wikipedia.org/wiki/Estructura_de_datos
Progrmaacion Castellano. (2019). programacion.net. Obtenido de
https://programacion.net/articulo/estructuras_de_datos_y_algoritmos_en_java_309

También podría gustarte