lunes, 12 de mayo de 2014

Qué son y qué no son las estructuras de datos

Estructuras de datos

En la vida práctica se puede encontrar una cantidad enorme de información en forma de datos, mismos que se encuentran organizados de tal manera que se puede disponer de la información que estos arrojan, estando organizados facilitan el acceso a su manejo. Toda la información obtenida de los datos y que pasa por nuestros ojos se encuentra organizada de manera tal que, facilita la productividad y competitividad.
Una estructura de datos es una colección de datos que se caracterizan por la forma en cómo están organizados los datos, así como, las relaciones y operaciones posibles que por ellos se definen con base a reglas previamente definidas. Durante el curso se definieron diferentes tipos de estructuras, para este caso, las estructuras de datos en cadena, tal es el caso de los vectores de números ordenados en forma sucesiva y las estructuras en forma de matriz, en las cuales los datos se encuentran ordenados en filas y columnas. Las estructuras de datos son indispensables en la programación a fin de proporcionar un panorama claro del resultado que se espera como resultado.
Tipos de datos
Existen diferentes tipos de datos que a su vez pueden ser de tipo int, float, char, byte, double, long. y formar diferentes tipos de estructuras de datos, como pueden ser estáticas o dinámicas, siendo las estáticas aquellas en las que el tamaño de de memoria ocupado es definido antes que sea arrancado el programa que los usa. Por otro lado, las estructuras dinámicas no tienen limitación por su tamaño, a excepción de la memoria disponible en la computadora en la que vaya a ser utilizada.
Estructura de datos en cadena
En el caso de las estructuras en cadena como en el ejemplo inicial del curso, pueden estar definidas como fijas o variables, para el caso práctico, se toman caracteres numéricos o alfanuméricos, como pueden ser   una palabra, una frase, una matrícula, etc. La manera de concatenar en el caso práctico del curso fue por medio de comilla simple, ejemplo: {'H','O','L','A'};
Arreglos
Los arreglos son conjuntos de datos del mismo tipo, lo cual es su principal característica y se encuentran almacenados en forma adyacente. Cada uno de los datos contenidos son llamados elementos y se encierran entre corchetes [ ] indicando de esta manera que hablamos de un arreglo, estos elementos pueden ser procesados de manera separada, solo es necesario indicar la posición del elemento dentro del arreglo; el número de elementos dentro de un arreglo se especifica desde que es creado una vez que se declara desde el main.
Existen tres tipos de arreglos, a saber: unidimensionales, bidimensionales y multidimiensionales.
Los unidimensionales, en estos los elementos se encuentran ordenados en forma contínua o lineal para este caso.
Los bidimensionales, son aquellos que están estructurados por elementos del mismo tipo al igual que los anteriores, pero están ordenados en filas y columnas y se leen en ese orden, primeramente las filas y enseguida las columnas, esto para ubicar un elemento en específico.
Los multidimensionales,  estos son similares a los bidimensionales, con la particularidad de que los elementos (virtualmente) son apilados unos sobre otros formando una especie de cubos, pero el programa nos los muestra como si fueran tablas para ubicar a cada uno de los elementos.
Litas   simples
Las listas con conjuntos de datos ordenados en la cual cada elemento tiene un predecesor, a excepción del primer elemento    y un único sucesor, a excepción del último; en el caso de las listas, se utiliza el procedimiento de últimas entradas, primeras salidas; la longitud de las listas puede reducirse o aumentarse según lo crea necesario el usuario, cada elemento recibe el nombre de nodo, el cual contiene un campo para almacenar el dato y un puntero en un extremo, a través del cual podrá enlazarse a otro nodo formando la secuencia de elementos.
Listas simples enlazadas
Una lista enlazada es una de las estructuras de datos, y puede ser usada para implementar otras estructuras de datos. Consiste en una secuencia de nodos, en los que se guardan campos de datos a elección del usuario y una o dos referencias o punteros al nodo anterior o posterior. El principal beneficio de las listas enlazadas respecto a las simples es que el orden de los elementos enlazados puede ser diferente al orden de almacenamiento en la memoria, permitiendo que el orden de recorrido de la lista sea diferente al de almacenamiento. La lista enlazada básica es la lista enlazada simple la cual tiene un enlace por nodo. Este enlace apunta al siguiente nodo y si se refiere al último, su valor será null.
Pilas
Las pilas son estructuras lineales a las que se puede acceder a sus datos solo por un extremo, que es el último elemento que haya sido ingresado, el método para acceder es de últimas entradas, primeras salidas. A estas estructuras se les puede afectar solo por dos operaciones, estas son: añadir elemento y eliminar elemento. Se manejan dos punteros, uno para indicar en donde empieza la pila y el otro en donde termina o cual es el último elemento, que a su vez, será el primero en salir en caso de hacer una eliminación. Si se desea eliminar un elemento de la pila, es necesario verificar que la estructura tenga elementos, de lo contrario, el programa nos enviará un mensaje de que la pila está vacía.
Colas
Las colas son estructuras lineales en la que los datos van siendo ingresados por el final y los eliminados por el frente, a diferencia de las pilas, en las colas se eliminan los elementos partiendo desde el primero en entrar a la estructura, es decir; primeras entradas primeras salidas. Para las colas, se necesitan dos variables, que son: frente y fin que son representados por punteros, uno a cada lado del elemento
frente
dato
fin
Las colas facilitan la interconexión entre un ordenador y una impresora por ejemplo, en donde la información a imprimir se va guardando en el orden que va entrando a la memoria de la impresora.
Árboles
Los árboles son estructuras no lineales en las que cada elemento o nodo está unido a otros o por debajo de él; un árbol uno o dos nodos denominados hijos. Al nodo principal se le llama raíz, al momento de ingresar un nodo, se debe evaluar si el valor del nodo a ingresar es mayor o menor que raíz, si en menor se aloja del lado izquierdo y si es mayor, se aloja del lado derecho, si debajo del no hijo, hay necesidad de alojar más nodos, se sigue el mismo procedimiento, considerando el valor del nodo a agregar, para saber si va por los de menor o mayor valor, para colocarlo ya sea a la izquierda o a la derecha, según sea el caso; y si ya no hubiera más nodos por agregar, al último o últimos en la jerarquía, se los denomina nodos hijos o simplemente hojas. Los árboles se utilizan para  realizar bases de datos en donde la búsqueda y almacenamiento sean los más óptimos.
Para recorrer un árbol se debe llevar un procedimiento de manera sistemática, procedimientos conocidos como pre orden, in orden y post orden, el procedimiento de cada uno es el siguiente:
Pre orden.-
1.    Se visita la raíz
2.    Recorrer el subárbol izquierdo en pre orden
3.    Recorrer el subárbol derecho en pre orden
In orden.-
1.    Recorrer el subárbol izquierdo in orden
2.    Visitar la raíz
3.    Recorrer el subárbol derecho

Post orden.-
1.    Recorrer el subárbol izquierdo en post orden
2.    Recorrer el subárbol derecho en post orden
3.    Visitar la raíz
La característica de los árboles es que en ellos cada nodo puede estar conectado a subárboles, que a su vez tienen una estructura similar, en la misma forma de árbol.
Teoría de grafos
Los grafos tienen como objetivos estudiar las interrelaciones entre elementos que interactúan unos con otros y obtener con ellos el mayor aprovechamiento en la solución a problemas de la vida cotidiana, estos están formados por vértices, nodos y flechas.
La teoría de grafos es aplicada a diferentes campos como lo pueden ser las redes de alcantarillado, redes eléctricas, rutas aéreas, terrestres, marítimas, logística, en la geografía, etc. En fin, en donde haya necesidad de organizar elementos para maximizar recursos.

Conclusión
Las estructuras de datos son elementales en todos los campos la de computación y aun cuando no se implemente como tales, estructurar de manera ordenada los elementos en cualquiera de las áreas a trabajar, éstos deben ser ordenados con claridad y de manera sistemática. El conocimiento aprendido es de valor en todos los ámbitos de la vida cotidiana y más en el campo del manejo de la información, considerando que existe un acervo muy amplio en materia de la informática, acrecentando las posibilidades de aportar un mejor aprovechamiento de los recursos que nos provee la información, pues para cada situación existe un procedimiento adecuado y óptimo con el fin de reducir tiempos y otros recursos de suma importancia que si se saben aprovechar, se traducen en desarrollo y crecimiento.
El estudioso de la computación habrá de engrandecer lo que hasta ahora se tiene recorrido y aportar en la medida de las posibilidades al desarrollo de nuevas y mejores herramientas, pues no solo se trata de jugar con dispositivos de manera virtual, sino, como se vio en el caso de los temas tratados, que son aplicaciones de la vida cotidiana y con los que todos de manera directa o indirecta tenemos poco o mucho que ver y hacer, el conocimiento se extiende en la medida que se sumerge en la aventura de buscar y encontrar nuevas y mejores cosas.

Las estructura de datos no son solo ejercicios informáticos que tengan como objetivo el desarrollo de la inteligencia y las habilidades lógicas, como tampoco son herramientas que sean aplicables a los mismos casos, pues para cada caso deberá elegirse correctamente los programas adecuados para la solución de problemas, pues no es la misma medicina para todos los males.

No hay comentarios.:

Publicar un comentario